전체 글
-
[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] UPDATE 쿼리에 dynamic 쿼리 적용 시 SET 절Error 2021. 4. 28. 10:56
에러 내용 java.lang.Exception: SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred while applying a parameter map. --- Check the updateSrvAccount-InlineParameterMap. --- Check the statement (update failed). --- Cause: java.sql.SQLException: Syntax error or access violation message from server: "You have an error ..
-
[Java] BufferedWriter / OutputStreamWriter / FileOutputStream 으로 파일 만들기Java 2021. 4. 16. 18:00
시작하면서 회사에서 업무를 하면서 기존 데이터를 엑셀(CSV) 형식으로 백업하는 기능을 개발하게 됐다. BufferedWriter을 써서 파일을 만들고 내부 내용을 입력했는데, 이 과정을 기록하고 각 클래스(BufferedWriter / OutputStreamWriter / FileOutputStream)에 대해 더 알아봤다. BufferedWriter - OutputStreamWriter - FileStreamWriter BufferedWriter보다 익숙한 게 있다. 바로 BufferedReader! 처음 자바를 배울 때, Scanner을 사용하지 않고 BufferedReader을 통해 입력을 했던 기억이 있다. Scanner의 경우 문자열을 입력할 시 자동으로 개행 처리를 해주지만 BufferedR..
-
[Spring/java] 객체에 NullPointException? Servlet.xml을 확인하자Error 2021. 2. 18. 16:21
NullPointException, 객체가 비어져있다? 아래는 내가 짠 예제 코드다. 업무코드다보니 변수 / 클래스 이름 등은 임의로 바꾸고 이외의 코드들은 생략했다. public class SampleAjaxController implements Controller { private SampleClass sampleClass; public void setSampleClass(SampleClass sampleClass) {this.sampleClass = sampleClass;} private String sampleMethod(HttpServletRequest request, JSONObject jsonObj) { String result= "Fail"; try { result = sampleClass..
-
[iBatis/myBatis] Dynamic 동적 SQLStudy 2021. 2. 8. 13:41
회사에서 작은 검색기능을 추가하며 xml 매퍼의 쿼리문을 추가할 일이 생겼다. iBatis / myBatis는 SQL 매퍼 프레임워크로, DB와 프로그램을 이어주는 역할을 한다. xml 매퍼 파일에 쿼리를 직접 작성해서 CRUD를 프로그램이 수행하게 한다. 그런데 쿼리의 경우, 쿼리문이 정해져 있어 다른 조건 값으로 CRUD를 수행할 경우 매번 쿼리문을 다시 xml 파일에 추가해야 한다. 그래서 사용하는 것이 동적 쿼리로 iBatis에서는 태그를 사용해 동적 쿼리를 구성할 수 있다. 태그가 제공하는 대표적인 태그 : 명시된 속성 값이null일 경우 수행 : 명시된 속성 값이 null이 아닐 경우 수행 : 속성 값이 없을 경우 수행 : 속성 값에 값이 있을 경우 수행 : 속성 값이 compareValue ..
-
포스트맨(Postman)으로 API 테스트Practice/Tool 2021. 1. 28. 17:51
입사한 후로 자사 제품을 더 잘 알기 위해 QA(Quality Assurance)를 진행하고 있다. 말이 QA지 작성된 테스트 시나리오를 기반으로 하나씩 따라 실행해보며 제품 기능을 익히는 것이 주력이다. 그러면서 기능이 작동하지 않거나 에러가 있는지 확인하고 있다. (내가 QA를 진행하는 제품은 최근 패치를 마쳐 프론트 단에서의 에러가 조금 있다.) API 테스트를 하며 포스트맨(Postman)이라는 API 테스트 도구를 처음 사용해보게 되었다. 포스트맨 사용 후기 겸 간략한 사용법을 적고자 한다. API 테스트? API 테스트는 애플리케이션에 적용한 API가 정상 작동하는지 확인하는 테스트다. 웹 API의 경우 키, 값을 URL로 리퀘스트 하면 값이 반환된다. 제대로 된 리턴 값이 반환되는지를 확인해..
-
하이버네이트(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)를 보내는 방식이다. 통신을 하기 위해서..