Study/개발 용어
-
하이버네이트(Hibernate)Study/개발 용어 2021. 1. 26. 16:37
하이버네이트(Hibernate)란? 하이버네이트(Hibernate) ORM란 자바 언어를 위한 객체 관계 매핑 프레임워크이다. 객체지향 도메인 모델을 관계형 데이터베이스로 매핑하기 위한 프레임워크를 제공한다. 하이버네이트(Hibernate)는 우리가 흔히 사용하는 DB의 데이터와 코드를 매핑시켜주기 위한 프레임워크다. 비슷한 용도로 사용되는 것이 iBatis / myBatis다. iBatis / myBatis는 JDBC 드라이버를 사용해 자바 코드와 DB를 매핑해주었다. 나는 마이바티스를 사용했는데, 이 과정에서 XML에 쿼리를 작성했다. (물론 일부 구간은 동적으로 작성할 수 있게 마이바티스에서 제공해 준다.) 사용 용도는 마이바티스/아이바티스와 비슷하지만 작동 원리가 하이버네이트는 전혀 다르다. OR..
-
소켓(Socket) 통신Study/개발 용어 2021. 1. 19. 17:02
소켓 통신이란? 소켓 통신을 알아보기 전에 소켓에 대해 알아보자. 소켓은 "구멍", "콘센트"라고 생각하면 편하다. 즉, TCP/IP를 이용하는 창구 역할로 두 프로그램이 네트워크를 통해 서로 통신을 수행할 수 있도록 양 쪽에 생성되는 링크 단자라고 할 수 있다. 즉 두 소켓이 연결되어 통신하는 것을 소켓 통신이라고 한다. 웹을 예로 들면 서버 / 클라이언트가 특정 Port를 통해 실시간 양방향 통신을 하는 것을 의미한다. HTTP 통신과 소켓 통신의 차이 예전에도 HTTP와 소켓 관련한 블로그 글을 본 적이 있다. 내가 보고 나서 잊어서 문제지만... 웹 개발을 해서 익숙한 HTTP의 경우, 클라이언트가 요청(request)를 보내면 서버가 응답(response)를 보내는 방식이다. 통신을 하기 위해서..
-
하드코딩(Hard-coding)Study/개발 용어 2021. 1. 18. 11:57
하드코딩이란? 데이터를 코드 내부에 직접 입력하는 것. 기술적으로는 데이터가 실행 바이너리(exe 파일 등)에 합쳐져 있는 상태를 말한다. 나무위키(namu.wiki/w/%ED%95%98%EB%93%9C%EC%BD%94%EB%94%A9) 실무를 하다보면 하드코딩(Hard-coding)이란 이야기를 자주 듣는다. 하드코딩이란 데이터를 코드에 직접 입력하는 경우를 말한다. 예를 들어 많이 쓰는 코드인 문자열 출력이 그렇다. System.out.println("하드코딩이란?"); 자바 코드로 작성해 본 문자열 출력 코드다. 직접 문자열 "하드코딩이란?"을 코드에 삽입했다. 이와 같은 경우는 모듈화가 되지 않은 것으로 코드와 데이터가 달라붙어(?)있어 추후 유지보수가 어려울 수 있다. 또한 데이터가 직접적으로 ..
-
API (Application Programming Interface)Study/개발 용어 2021. 1. 15. 11:48
API란? API(Application Programming Interface)는 응용프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. API라는 말을 굉장히 많이 듣는다. 자바 백과사전인 자바 API도 있고, 카카오맵 같은 API도 있다. API를 사용해보았지만 API가 정확히 무슨 뜻인지는 몰라 알아보았다. API는 UI를 생각하면 편하다. UI는 User Interface의 약자로 사용자가 프로그램을 조작하기 위한 인터페이스다. API는 프로그램이 사용할 수 있는 인터페이스라고 생각하면 된다. 지난 프로젝트 당시 지도 앱 API를 통해 특정 지역의 특정 장소를 찾을 수 있게 하는 기능을 구현했는데, 이는 우리 웹 서비스에서 다음..
-
스레드 (Thread)Study/개발 용어 2021. 1. 15. 11:33
스레드란? 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 프로세스(prosess)는 알아도 스레드는 어렵다. 프로세스는 운영체제에서 프로그램이 실행될 때 흐름의 단위로 알고있다. 스레드란 프로세스 보다 작은 단위로 프로세스 내에서 실행되는 흐름의 단위라고 한다. 프로세스: 각각의 은행 지점 스레드: 은행 지점 하나에 속한 고객 창구 여러 개 즉, 이런 형태로 생각하면 개략적인 이해가 쉽다. (나무위키 인용) 스레드와 프로세스의 차이 그렇다면 프로세스보다 더 작은 단위의 흐름을 정의하는 용어가 왜 필요할까? 프로세스는 각각 독립적인 실행 흐름이다. 프로세스를 강제종료해도 다른 프로세스에는 영향이 없다. 그러나 한 프로세스 안의 여러개의 스레드는 연계되..
-
데이터 바인딩 (단방향 바인딩, 양방향 바인딩)Study/개발 용어 2021. 1. 12. 15:46
Front-end 프레임워크에 대해 찾아보던 중 Angular / Vue.js가 양방향 데이터 바인딩을 제공한다는 사실을 알게 됐다. 웹 개발을 하며 바인딩이라는 용어를 자주 듣는데, 정확하게 설명하기가 어려워 다시 한 번 공부하며 포스팅하기로 했다. 데이터 바인딩이란? 데이터 바인딩 이란 두 데이터 혹은 정보의 소스를 모두 일치시키는 기법이다. 즉 화면에 보이는 데이터와 브라우저 메모리에 있는 데이터를 일치시키는 기법이다. 출처 : sungjk.github.io/2015/11/22/AngularJS(2).html 글로만 봐서는 감이 잡히지 않는다. 마침 Vue.js 실습을 하던 중 데이터 바인딩에 대한 실습을 하게 되어서 감을 잡았다 ! 사용자의 Input을 받는 웹 페이지의 경우, 사용자의 입력값이 ..