2019/09/19 - [Programming/Java] - Spring Boot 을 언제 써야 할까? (2) 외장 WAS 가 반드시 필요한가? 외장 WAS 만이 할 수 있는 것이 있기 때문에 Spring Boot 는 작은 프로젝트에 적합하고 Spring 이 큰 프로젝트에 적합하다는 이야기를 하는 분들이 계실꺼라 생각합니다. 실제로 제가 들은 주장에서도, 처음 프롤로그에 있는 제타건담 님의 댓글 내용에서도 외장 WAS 에서만 되는 것, 혹은 되는 것 처럼 알려진 것들을 이유로 외장 WAS 을 써야 한다는 주장을 하는 사람도 있었습니다. 실제 있었던 일인데, Spring Security 하위 프로젝트인 Spring Security oAuth 을 이용해 사내의 oAuth2 Server 에 인증을 요청하는 C..
2019/09/18 - [Programming/Java] - Spring Boot 을 언제 써야 할까? (1) Spring Boot 는 어떤 구조일까? 사실 대부분의 경우 Spring Framework 을 사용하게 되는 이유는 웹페이지 개발을 하기 위해서입니다. 지금은 다른 형태의 개발방법들도 소개되고 있지만, Spring Framework 을 이용해 궁극적으로 만들려고 하는 제품은 웹페이지인 경우가 많고, Spring 은 MVC 을 제공하고 있기 때문에 Spring 에는 MVC 만 있다고 오해할 수 있지만, 사실 Spring 은 MVC 만 존재하는 Framework 는 아닙니다. 초장기(2.5 미만인 시절)에는 MVC 부분에서 Controller 은 Struts 와 같은 다른 Framework 을 연동..
2019/09/18 - [Programming/Java] - Spring Boot 을 언제 써야 할까? (0) 프롤로그 Spring Boot 가 어떤 형태인지 알아야 기존의 Spring 와 Spring Boot 가 어떤 차이점을 가지게 되는지 알 수 있을 것입니다. 이에 대해서는 제가 올린 Spring Boot 입문 글들을 읽어보시면 도움이 될 것입니다. https://zepinos.tistory.com/category/Programming/Spring Boot 시작하기 'Programming/Spring Boot 시작하기' 카테고리의 글 목록 zepinos.tistory.com 결론부터 말하자면, 사실 Spring Boot 은 Spring Framework 라이브러리를 쉽게 호출할 수 있도록 Maven..
이 글을 쓰게 된 이유는 아래 글 때문입니다. https://okky.kr/article/628180 OKKY | spring boot vs spring mvc 현재까지 spring mvc만 사용하다가 이번에 입사하면서 spring boot를 통해 개발을 하게 되었는데요. 제가 지금까지 조사해 본 바로는 spring boot를 규모가 작은 경우에 이용한다고 했는데요. embedded tomcat과 일반 WAS tomcat의 성능차이가 크지 않다고 하던데 그렇다면 굳이 규모가 큰 프로젝트라 할지언정 spri okky.kr 제가 극도로 분노를 하게 되었는데, 그 이유는 질문 내용 중 2년 전 쯤 들은 어떤 "주장" 때문이었습니다. 그 일로 그 때 일하던 회사를 그만두게 되는 시초가 되었다고 생각하기 때문입니..
Spring Cloud Config Spring Cloud Config 은 설정파일을 외부(git 등)에서 관리하고 각 프로그램은 Spring Cloud Config Client(이하 Client) 을 라이브러리에 포함시킨 뒤 Spring Cloud Config Server(이하 Server) 연결 정보를 기술하면 프로그램 시작 시 Spring Boot Application Properties 정보를 자동으로 읽어올 수 있습니다. 뿐만 아니라, @RefreshScope 을 이용하면 변경된 설정 정보를 프로그램 재시작 없이 자동 반영할 수도 있습니다. Spring Cloud Config Server Server 에서 git 등에 정의된 설정 정보를 읽어와 Client 에 제공할 수 있습니다. 이 때 다수의..
Spring 에서 흔히 @Autowired 로 객체를 주입받을 때 아래와 같이 사용합니다. @Autowired private BCryptPasswordEncoder bCryptPasswordEncoder; 그러면 BCryptPasBCryptPasswordEncoder 을 Singleton 으로 생성(new)해서 사용하는 것과 같은 효과를 얻을 수 있습니다. 그런데, 간혹 Interface 을 구현(Implement)한 객체 여러개를 주입받고 상황에 따라 그 중 하나를 사용하고 싶을 때에는 어떻게 해야 할까요? 보통은 ApplicationContext#getBean 을 이용해서 등록된 Bean 중 하나를 꺼내서 사용할 것입니다. passwordEncoder = (PasswordEncoder) applica..
회사에서 외장 Tomcat 에 Deploy 하는 소스가 있었습니다. 저는 반골이라, Tomcat 쓰고 싶지 않았습니다. 그래서 다음과 같이 Wildfly 을 위한 내용을 추가하여 Tomcat 와 마찬가지로 Wildfly 에서 제대로 동작하도록 하였습니다. 참고로, 소스는 Java 11, Spring 4 with Maven 이었습니다. (힘들다...) 1. jboss-web.xml 기존 프로그램은 context root 가 / 였습니다. Wildfly 는 배포기술자를 이용해 이 경로를 수정해줘야 합니다. 그래서 WEB-INF/ 아래에 jboss-web.xml 파일을 생성하고 다음과 같은 내용을 추가해야 합니다. / 2. pom.xml Java 9 에서 직소 프로젝트가 적용되면서 참 많은 혼란을 겪고 있습니..
2019/03/22 - [Programming/JOOQ] - [JOOQ-06] 올바른 질의를 작성하게 도와주는 방법 JOOQ 에서는 Oracle, SQL Server, MySQL 등에서 제공하는 CTE(WITH 로 알고 계시는 분들도 있더군요) 역시 작성할 수 있습니다. 다만, 이 때에는 method 단위의 기능 보다는 문자열로 합성해야 하는 경우가 있어서 추천하고 싶은 방법은 아닙니다. 먼저, 아래와 같이 Java 코드로 작성합니다. CommonTableExpression t1 = name("t1").fields("f1", "f2").as(select(val(1), val("a"))); CommonTableExpression t2 = name("t2").fields("f3", "f4").as(selec..
2019/03/21 - [Programming/JOOQ] - [JOOQ-05] 객체(Object)에 질의 결과 저장하기 JOOQ 는 Java 코드를 SQL 로 에뮬레이트 해주는 DSL 의 성격을 가지고 있습니다. 그래서 C# 의 LINQ 와 유사하게 코드를 작성할 수 있고, 작성된 코드의 문법적 문제를 어느 정도 예방할 수도 있습니다. 그 의미를 알기 위해 아래와 같은 간단한 질의를 Java 코드로 변경해보겠습니다. SELECT * FROM author a JOIN book b ON a.id = b.author_id WHERE a.year_of_birth > 1920 AND a.first_name = 'Paulo' ORDER BY b.title 위 질의는 다음과 같이 작성될 수 있습니다. Author a..
2019/03/05 - [Programming/JOOQ] - [JOOQ-04] 좀 더 복잡한 질의 실행해보기 JOOQ 에서는 앞선 예제에서와 같이 Record3 와 같은 Record 을 제공해줍니다. 결과가 3 개일 때에는 Record3, 4 개일 때에는 Record4 을 이용해서 결과를 fetch() 을 통해서 받을 수 있습니다. 하지만, 많이 사용되는 MyBatis 에서도 HashMap 이나 POJO(VO, DTO 등) 형태로 결과를 저장하는게 일반적으로, JPA 에서도 @Entity 로 선언된 POJO 에 바로 결과를 저장하는 것이 일반적입니다. 내부적으로는 Reflection 을 이용하겠죠. 당연히 JOOQ 에서도 POJO 에 바로 저장할 수 있는 기능을 제공합니다. 먼저 앞선 예제의 질의를 그대..
- Total
- Today
- Yesterday
- OracleJDK
- proxmox
- 워드프레스
- 페이징
- 내장 WAS
- Spring MVC
- 엘지
- Phabricator
- Redmine
- NoSQL
- jooq
- Spring Boot
- RestTemplate
- 외장 WAS
- 도입기
- Spring
- manjaro
- couchbase
- git
- 프로젝트 규모
- messages.properties
- SI
- 클라우드플레어
- Nas
- boot
- docker
- KDE
- java config
- paging
- 시니어 프로그래머
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |