Study
-
[MariaDB x Galera Cluster] Galera Cluster 설정 방법Study 2021. 6. 9. 17:22
Galera Cluster 설정 방법 MariaDB 10 이상의 버전에서는 설치 없이 Galera 사용 가능 (현재 PMS는 MariaDB 10.4 사용) Galera Cluster 설정 수정 # vi /etc/my.cnf.d/server.cnf *상세 내용 [galera] # Mandatory settings wsrep_on=ON // Galera 사용 위해 on 설정 #wsrep_provider=/usr/lib64/galera/libgalera_smm.so // 루트 (MariaDB 10.3 version) wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so // 루트 (MariaDB 10.4 version) wsrep_cluster_address=gcomm:..
-
[iBatis/myBatis] Dynamic 동적 SQLStudy 2021. 2. 8. 13:41
회사에서 작은 검색기능을 추가하며 xml 매퍼의 쿼리문을 추가할 일이 생겼다. iBatis / myBatis는 SQL 매퍼 프레임워크로, DB와 프로그램을 이어주는 역할을 한다. xml 매퍼 파일에 쿼리를 직접 작성해서 CRUD를 프로그램이 수행하게 한다. 그런데 쿼리의 경우, 쿼리문이 정해져 있어 다른 조건 값으로 CRUD를 수행할 경우 매번 쿼리문을 다시 xml 파일에 추가해야 한다. 그래서 사용하는 것이 동적 쿼리로 iBatis에서는 태그를 사용해 동적 쿼리를 구성할 수 있다. 태그가 제공하는 대표적인 태그 : 명시된 속성 값이null일 경우 수행 : 명시된 속성 값이 null이 아닐 경우 수행 : 속성 값이 없을 경우 수행 : 속성 값에 값이 있을 경우 수행 : 속성 값이 compareValue ..
-
하이버네이트(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)는 알아도 스레드는 어렵다. 프로세스는 운영체제에서 프로그램이 실행될 때 흐름의 단위로 알고있다. 스레드란 프로세스 보다 작은 단위로 프로세스 내에서 실행되는 흐름의 단위라고 한다. 프로세스: 각각의 은행 지점 스레드: 은행 지점 하나에 속한 고객 창구 여러 개 즉, 이런 형태로 생각하면 개략적인 이해가 쉽다. (나무위키 인용) 스레드와 프로세스의 차이 그렇다면 프로세스보다 더 작은 단위의 흐름을 정의하는 용어가 왜 필요할까? 프로세스는 각각 독립적인 실행 흐름이다. 프로세스를 강제종료해도 다른 프로세스에는 영향이 없다. 그러나 한 프로세스 안의 여러개의 스레드는 연계되..
-
프론트엔드 프레임워크 트렌드(Angular / React / Vue.js)Study 2021. 1. 13. 17:50
회사에서 사내 세미나 발표 준비하면서 만들었던 요약 자료 프론트엔드 프레임워크에 대해 더 깊이 알 수 있었다. 실제 Vue.js 예제를 몇 구문 작성하기도 하며 감각을 익혔다. Front-end 프레임워크 트렌드 Front-end 프레임워크 소개 프레임워크란? 애플리케이션 구조에 대한 가이드라인과 기반 코드를 제공하는 개발 툴 Front-end 프레임워크 사용자와 만나는 화면단인 Front-end 개발을 목적으로 하는 프레임워크 최근에는 웹이 복잡해지며 SPA 개발을 위한 프레임워크가 각광 받고 있다. JavaScript 프레임워크의 등장 모바일 / 웹의 발달로 화면에서 표현해야 하는 Front-end의 개발이 복잡해지며 JS를 이용한 프론트엔드 구성이 주목 받고 있다. 웹 규모가 커지며 JS 파일이 많..