일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 세미나
- 코드 리뷰
- Spring
- static inner class
- ORM
- Spring Batch
- spring jpa
- spring bean
- spring-webmvc
- Data REST
- ApplicationPidFileWriter
- JPA
- SuperTypeToken
- spring batch 코드
- spring camp
- spring boot
- JPA mapping
- Spring Data JPA
- spring pid
- docker
- spring boot tomcat
- 톰캣
- spring-mvc
- REST API
- spring-webmvc #코드읽기
- batch
- tomcat
- Spring Data REST
- IntelliJ
- JUnit
- Today
- 3
- Total
- 916,325
woniper
Spring-MVC는 Spring Framework의 feature 중 하나다. 때문에 코드를 보기 위해서는 Sprig Framework github 코드를 clone 해야 한다. clone & build github repository clone 참고 : Build from Source $ git clone https://github.com/spring-projects/spring-framework.git build $ cd spring-framework $ ./gradlew build 프로젝트 크기가 커서 빌드가 오래 걸린다. test spring-webmvc module $ ./gradlew -a :spring-webmvc:test 코드를 clone 받아 빌드 후 spring-webmvc 모듈을 t..
코드! 쓰기 말고 읽기. 오픈소스에 기여는 못하더라도 읽기는 가능하다. 예전에 어떤 컨퍼런스에서 진성주 님이 이런 말을 했던 게 기억난다. 시인이 되고 싶은 사람은 다른 사람들의 시를, 화가가 되고 싶은 사람은 다른 사람의 그림을, 가수가 되고 싶은 사람은 다른 사람의 노래를 개발자인 우리도 다른 사람의 코드를 읽고 배울 필요가 있다. 어쩌면 우리는 일을 하다 보면 코드를 작성하는 시간보다 남의 코드를 읽는 시간이 더 많을지도 모른다. 어느 날 SLiPP 스터디에서 Spring Core 스터디를 하게 됐다. 이 스터디는 이론적으로만 알고 있던 Spring Context의 코드를 읽기 위한 스터디였다. 결과론적인 이야기일 수 있지만, 나는 이 스터디를 통해 개발자로서 많은 부분이 변했다고 생각한다. 첫 번..
토이 프로젝트를 서버에 배포한 후 기존에 실행되던 spring boot 애플리케이션을 죽이고(kill) 재실행하기 위해 pid를 이용했다. 애플리케이션 배포 기존 실행되던 애플리케이션 종료 배포된 애플리케이션 실행 무식한 방법으로 기존에 실행하던 애플리케이션을 죽이기로 했다. kill 하기 위해서 pid(process id)가 필요했다. 그래서 Spring boot 애플리케이션 실행 시 실행된 애플리케이션의 pid를 생성하는 방법을 찾아봤다. 쉽다. public static void main(String[] args) { SpringApplicationBuilder builder = new SpringApplicationBuilder(BookUPApplication.class); builder.build..
개발 하다 보면 가끔 inner class를 사용하는 경우가 있다. outer class에서만 사용하는 경우 outer class에만 멤버 변수로 선언되어 있고, 외부에서 생성할 수 있어야 하는 경우 책임을 분리하고 싶지만, 외부로 노출하지(사용하지) 못해야 하는 경우 나는 대략 위와 같은 기준으로 inner class를 만들어 사용한다. inner class는 non static inner class와 static inner class로 나뉜다. 그 외 메소드에서 선언되는 local class(지역 클래스)와 anonymous inner class(익명 클래스)도 있다. 이 글은 non static inner class와 static inner class만 설명한다. non static inner cl..
이 글은 CompletableFuture API를 설명하는 글은 아니다. CompletableFuture로 어떻게 성능을 개선했는지에 대한 경험 글이다. 개인 프로젝트로 bookup 이란 웹 애플리케이션을 개발하고 있다. 원하는 도서가 오프라인 서점에 재고가 있는지 검색하는 서비스다. 오프라인 서점마다 Open API가 없어, html 크롤링으로 개발했다. 그런데 개발하며 문제가 생겼다. 바로 오프라인 서점의 수가 많아질 수록 성능이 느려진다는 것이다. 재고 조회 순서는 아래와 같다. ISBN(도서 고유값) 값을 구하기 위해 네이버 Open API를 통해 ISBN 값을 얻는다. (API 요청) ISBN으로 오프라인 서점에 해당 도서의 재고를 순서대로 크롤링한다. 왜 성능이 느릴까? 이유는 여러 http ..