2019/03/05 - [Programming/JOOQ] - [JOOQ-03] 테스트 DB 을 생성하고 JOOQ 객체 생성하기 좀 더 복잡한 질의를 실행해보겠습니다.저의 경우 JOOQ 으로 개발할 때에는 먼저 DBMS 에 직접 SQL 로 명령을 실행해본 뒤에 실제 본문을 작성해봅니다. JOOQ 는 Type Safe 등을 지원하긴 하지만, 이것이 올바른 질의인지는 판단하지 않기 때문입니다. 다음은 실제 질의해 본 것입니다. SELECT author.first_name, author.last_name, COUNT(*) FROM author JOIN book ON author.id = book.author_id JOIN `language` ON book.language_id = `language`.id WHE..
2019/03/01 - [Programming/JOOQ] - [JOOQ-02] JOOQ 에 대해서 좀 더 알아보기 앞선 글에서 아주 간단한 테스트를 위해 하나의 Table 을 생성하고 JOOQ 객체 생성 없이 사용하는 예제를 만들어봤습니다. 하지만, JOOQ 객체 없이 JOOQ 을 쓴다는건 생각하기 힘든 일입니다. 왜냐하면, String 으로 된 "board.seq" 와 같은 것으로 오타 방지 등을 할 수 없기 때문입니다.반대로 JPA 와 달리 사용자가 POJO 을 만들고 이를 바탕으로 DB 을 자동으로 생성해주는 것 또한 바람직하지 않다고 생각합니다. ORM 을 많이 사용하게 되면서 Java Object(POJO) 을 기반으로 데이터 구조를 설계하는 문화도 꽤나 정착되었지만, 여전히 기획을 바탕으로 데..
2019/02/28 - [Programming/JOOQ] - [JOOQ-01] JOOQ 맛보기 Web 프로그래밍이 perl 을 앞세워 CGI 의 영역에서 서비스 되던 시기에는 RDBMS 을 이용해서 데이터를 처리하기 보다는 예전처럼 서버의 파일시스템에 Text 파일을 만들어 데이터를 다루는게 더 일반적인 시기가 있었습니다. 하지만, MySQL 을 위시한 무료 RDBMS 가 성능을 높여가고 Web 프로그래밍의 구성 방법이 바뀌어가면서 Web 프로그래밍 시 RDBMS 가 항상 포함되는건 당연한 것처럼 여겨지는 시대가 되었습니다. 현재에는 RDBMS 의 한계를 극복하기 위해 NoSQL 제품들이 나오고 있지만, 아직까진 RDBMS 의 아성은 굳건하기만 합니다. Web 의 유행으로 인해 대중화된 RDBMS 은 더..
2019/02/28 - [Programming/JOOQ] - [프롤로그] JOOQ 을 사용하게 된 계기 JOOQ 을 어떻게 사용하는건지 아주 간단한 맛보기 프로그램을 만들어보겠습니다. PC 에 docker 을 사용할 수 있는 환경을 구축한 후 MySQL 8 을 설치하였습니다. jooq 라는 계정을 만들고 jooq@1234 라는 패스워드를 생성하고 jooq 라는 schema(DB) 을 생성하였습니다. 이 모든 설정은 MySQL 와 관련된 것이기 때문에 생략하겠습니다.생성된 DB 에 다음과 같이 테스트용 테이블 하나와 두 개의 데이터를 입력하였습니다. CREATE TABLE `jooq`.`jooq_board` ( `seq` INT NOT NULL AUTO_INCREMENT, `author` VARCHAR(1..
제목을 좀 거창하게 지은 것 같긴 하네요. 그냥, 제가 JOOQ 을 써보게 된 계기를 담담하게 적어보려고 합니다. Java 을 오랜 기간동안 사용해서 개발하다보니, 당연히 Connection, PreparedStatement, ResultSet 을 이용해서 DB 에 질의(Query)을 하는 방법도 써왔고, iBatis 2.x ~ MyBatis 3 도 많이 사용했으며, Spring 의 JdbcTemplate 도 써본 적이 있습니다. 한 때 이슈가 된, 그리고 지지자들의 의견으론, 해외에선 이미 대세가 되었다는 ORM, 그 중에서도 Java 표준이 되어버린 JPA with Hibernate 을 이용해 게임 서버를 개발하여 출시도 해봤습니다. 여러 방식으로 RDBMS 에 질의를 했지만, 그래도 가장 나았던 건..
2019/02/22 - [Programming/Java] - Undertow 와 Tomcat 의 간단한 비교 내장(Embedded) Tomcat 이 널리 사용되고 있진 않기 때문인지 기존에 사용하던 별도 설치를 통한 Tomcat(외장 Tomcat)이 내장 Tomcat 보다 성능이 떨어진다고 주장하는 사람과 그렇지 않다는 사람들이 여전히 각각 존재합니다. 진실은 무엇일까요? Tomcat 개발자들이 성능은 동일하다고 밝혔다는 것이 널리 알려지긴 했지만 제가 원문을 찾기도 귀찮고 해서 그냥 부하 테스트를 진행했습니다. 이전 글(상단 링크)의 Tomcat 이 내장 Tomcat 이기 때문에 Tomcat WAS 을 별도로 내려받아 이전 글에서 이용한 war 파일을 ROOT.war 로 이름을 바꾼 뒤 %CATALIN..
2019/01/23 - [Programming/Java] - Spring Boot 공식 지원 내장 WAS 인 Undertow 을 씁시다. 이전에 Spring Boot 에서 Embedded Tomcat 대신에 Undertow 을 사용하자고 글을 작성한 적이 있습니다. 글의 내용에서 Undertow 의 성능이 더 뛰어나다는 것을 근거로 삼았는데, 저의 경험을 이야기 한 것일 뿐이었기에 실제 간단한 코드를 이용해 테스트를 진행해 보려고 합니다. Spring Boot 프로젝트를 2 개(tomcat-pingpong, undertow-pingpong) 생성한다. Java 11, war, Web 을 선택해서 생성한다.undertow-pingpong 에는 pom.xml 에서 Tomcat 을 제외하고 Undertow 을..
2019/02/01 - [Programming/Spring Boot 시작하기] - Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (4) Spring Boot 에서 messages.properties 을 이용해서 다국어를 쉽게 view 에서 사용할 수 있습니다. 하지만, Java 코드 내에서 이 다국어 메세지를 불러오려면 어떻게 해야 할까요? 물론 CookieLocaleResolver 등으로 상태를 저장하고 있다면 request 에서 Cookie value 을 가져와서 messages_(언어코드) 에 해당하는 properties 을 읽어오면 되겠죠. 그렇다면, 이 때 파일명을 직접 생성해서 properties 파일을 열어야 할까요? 당연히 Spring 에서는 Loca..
2019/01/29 - [Programming/Spring Boot 시작하기] - Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (3) 쿠키로 관리되고 매개변수로 그 값을 변경하는 것이 완벽히 이해가 안된다면 간단한 예제 프로그램을 만들어 보는 것이 좋습니다. 각자 편한 대로 Spring Boot 프로젝트를 만듭니다. 이 때 Web 와 Thymeleaf 만 선택합니다.호출할 간단한 Controller 을 만듭니다. 앞 선 예제와 같이 MessageConfig 와 WebMvcConfig 도 만들어줍니다.다국어 출력을 위해 Thymeleaf 기반의 HTML 하나와 messages.properties, messages_ko_KR.properties, messages_en..
2019/01/28 - [Programming/Spring Boot 시작하기] - Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (2) Spring Boot 에서는 org.springframework.web.servlet.LocaleResolver 인터페이스를 @Bean 으로 재정의하여 사용자의 언어를 어떻게 관리할 것인지 변경할 수 있습니다. FixedLocaleResolver, CookieLocaleResolver, SessionLocaleResolver 와 같은 구현체가 존재하는데 개인적으로 가장 많이 이용한다고 생각되는 CookieLocaleResolver 에 대해서 살펴보겠습니다. import org.springframework.context.annotat..
- Total
- Today
- Yesterday
- 클라우드플레어
- 외장 WAS
- 엘지
- 시니어 프로그래머
- 내장 WAS
- Spring Boot
- SI
- Spring MVC
- Nas
- 도입기
- RestTemplate
- proxmox
- couchbase
- java config
- 프로젝트 규모
- Redmine
- manjaro
- paging
- OracleJDK
- boot
- messages.properties
- jooq
- 워드프레스
- git
- Phabricator
- Spring
- 페이징
- NoSQL
- docker
- KDE
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |