일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IntelliJ
- ORM
- spring-webmvc #코드읽기
- Data REST
- spring jpa
- JUnit
- spring boot
- Spring Data JPA
- Spring Batch
- spring-mvc
- spring boot tomcat
- tomcat
- spring pid
- batch
- Spring
- Spring Data REST
- 톰캣
- SuperTypeToken
- 코드 리뷰
- JPA mapping
- docker
- REST API
- spring camp
- spring-webmvc
- ApplicationPidFileWriter
- 세미나
- JPA
- spring batch 코드
- spring bean
- static inner class
- Today
- 1
- Total
- 916,386
목록net.woniper.java (163)
woniper
Spring Batch의 동작 코드 #Job 생성과 실행 글에서 Job이 어떻게 생성, 실행되는지 코드를 보며 확인했다.이 글은 Job이 어떻게 Step List를 실행하는지 코드를 보며 확인해 볼 것이다. SimpleJob.doExecute @Override protected void doExecute(JobExecution execution) throws JobInterruptedException, JobRestartException, StartLimitExceededException { StepExecution stepExecution = null; for (Step step : steps) { stepExecution = handleStep(step, execution..
누구나 아는 Spring Batch 기본 개념에서 Spring Batch Domain에 대해 간단히 알아보았다. 이번 글에선 기본 개념에 정리한 여러 클래스가 서로 어떤 의존성을 가지며, 어떻게 동작하는지 코드를 살펴볼 것이다. 모든 코드를 다 볼 수 없기에 이번 글은 Job이 어떻게 생성되고 실행되는지 살펴본다. Sample @Configuration public class SimpleConfiguration { @Autowired private JobBuilderFactory jobBuilderFactory; @Autowired private StepBuilderFactory stepBuilderFactory; @Bean public Job job() { return jobBui..
Spring Batch를 사용해본 개발자라면 이 포스팅은 볼 필요 없다. Spring Batch의 기본 개념 (레퍼런스 문서에서는 domain이라고 표현한..)을 내 나름대로 정리하는 글이다. 이 글은 Spring Batch가 무엇인지, 왜 사용하는지 설명하지 않는다. 기본 개념 Job : Batch에서 실행 가능한 실행 단위. JobLauncher : Job을 실행하는 책임이 있다. JobRepository를 통해 Job, Step, Item* 등을 생성하고 조립. JobRepository : DB 또는 어딘가에 저장된 Job, Step 등을 조회(select) 또는 생성(insert), 수정(update). Step : Job은 1개 이상의 Step을 포함(1:N)할 수 있고, 하나의 큰 실행 단위가..
나는 원래 이런 사람이었다. 잠이 많다. 움직이기 싫어한다. 귀차니즘 폭발 해야할 일을 미룬다. 새로운 일에 쉽게 흥미가 생기고, 쉽게 그만둔다. 웨이트 트레이닝을 시작하다. 이런 나를 바꾸고 싶었다. 2016년 12월 07일 나는 웨이트 트레이닝을 시작했다. 웨이트를 해본적이 없었던 나는 PT를 했다. 지금 생각하면 좋은 PT 선생님을 만나 운동뿐 아니라 안 좋은 습관을 많이 개선한 거 같다. 그 당시 4개월간 40kg을 감량했고(지금은 대박 요요ㅋㅋ) 운동하는 습관이 생겼다. 그 당시 주변 사람들이 왜 이렇게 갑자기 살을 독하게 빼냐는 질문에 나는 항상 특별한 이유는 없다라고 했었다. 결과론적인 말이지만, 지금 생각해보면 나는 게으른 나를 바꾸고 싶었는지도 모르겠다. 현재의 꾸준함. 사실 현재도 그렇..
intellij 2018.1 EAP 버전을 설치한 후 고난이 시작되었다. spring application server를 실행만 하면 5분에 한번씩 5분간 mac이 hang 걸렸다. 키보드도 트랙패드도 먹통이다. 그래서 백업 후 완전 초기화를 했다. 이를 정리하는 포스팅이다. 백업 OS 마다 intellij 설치 경로가 다르다. 여기를 참고하자. 맥 기준으로 백업 대상 디렉토리 경로 plugins path : ~/Library/Application Support/ config path : ~/Library/Preferences/ 두 경로를 다른 경로로 백업한다. config path에 저장되어 있는 설정 정보는 intellij > file > Export Settings...로 대신 백업 가능하다. 하지..
jooq나 querydsl 같은 프레임워크는 typesafe를 지원하기 위해 class를 생성하는데, 생성하기 위해서 maven 또는 gardle 설정이 필요하다. 이번 포스팅에서는 gradle을 기준으로 생성된 class를 sourceSet으로 등록하는 방법을 기록해두기 위함이다. build.gradle /** * intellij 관련 plugin 추가 */ apply plugin: 'idea' ext { // 생성된 class 경로 generatedJavaSourceDir = "src/generated/java" } /** * sourceSet에 generated add */ sourceSets { generated { java.srcDir generatedJavaSourceDir } ..
Visual Studio Code를 사용해 Git 커밋 메시지 작성하기 라는 글을 보고 visual studio code를 git editor로 설정하기로 했다. 간단하지만, 기록을 남기기 위해서 블로깅한다. Visual Studio Code Download Visual Studio Code (이하 VSC) 경로 확인 mac 환경에서는 보통 /Volumes/HD/Applications/ 디렉토리 하위에 설치될 것이다. $ git config --global core.editor "/Volumes/HD/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code --wait" 위 경로는 예시일뿐 2번에서 경로를 확인 후 $git config ..
적지 않은 분량의 책이지만 이렇게까지 오래 읽은 책은 아닌데, 게으름 때문에 오랫동안 읽은 책이다. 개발자로서 자신을 어떻게 브랜딩하고, 건강관리, 자산관리 등 개발자로 살아가며 어쩌면 개발자가 아니어도 삶을 살아가며 도움될 만한 많은 것들을 제시하고 생각하게 한다. 책을 읽으며 저자가 부러운 점은 33세에 은퇴를 했다는 것이다. 피치 못한 은퇴가 아닌 부동산 + 여러 가지 소득으로 회사에 다니지 않아도 불로소득이 마련되기 때문이다. 나도 나름대로 개발을 좋아하고 잘하려고 노력하는데, 좋아하는 일을 회사에서 하는 것과 내가 좋아하는 일은 구분이 필요하기도 하고 회사에서 일하다 보면 하기 싫은 일도 해야 되기 마련이다. 저자는 은퇴를 일을 아예 그만두는 게 아니라, 자신이 하고 싶은 일을 자유롭게 하는 거..
개발 중에 list.addAll(T); 와 같은 코드 작성할 일이 있었다. 하지만 계속 java.lang.UnsupportedOperationException 에러가 나는 게 아닌가? 결론부터 말하자면 생각 없이 Collections.emptyList();로 초기화했기 때문이다. java.lang.UnsupportedOperationException java 문서에는 이 Exception을 이렇게 설명한다. 요청한 오퍼레이션이 지원되지 않는 경우 Exception 발생 UnsupportedOperationException는 Java Collection Framework에 Exception 클래스다. 그럼 Java Collection Framework를 사용하는 경우 비정상 요청을 한 경우 throw 되는..
약 3년 전쯤 스타트업 회사에 입사하면서 나 스스로 약속한 게 한가지 있다. TV 보지 않기 보통 회사에 다니면 하루 일정 프레임은 비슷할 거 같다. 아침에 일어나 출근 준비를 한다. 회사에 출근한다. 일한다. 퇴근한다. 나는 TV 보는 것을 좋아했다. 정확히는 습관적으로 봤다고 하는 게 맞을 거 같다. 아침에 일어나자마자 TV를 켜고 출근 준비를 한다. 퇴근 후 아무 생각 없이 TV를 켠다. 주말은 어떨까? 약속 없이 집에만 있는 날은 정말 일어나서 잠들기 전까지 TV를 끌 생각이 없었다. 볼 게 없어도 켜놓았다. 무엇보다 TV가 먼저 이렇게 종일 TV를 켜 놓으건 문제가 있었다. 할 일이 있어도 하지 않고 누워서 TV만 본다. 예를 들면 오늘은 카페 가서 어떤 공부를 하기로 다짐하고 TV를 본다. T..
객체지향은 어떻게 공부해야 할까? 항상 고민이다. 객체지향 관련 책도 별로 없을뿐더러, 연습 방법이 명확하지 않다. 디자인 패턴이나, SOLID 원칙 같은 패턴을 이해해도 실제 코드에 적용하기 쉽지 않다. 개인적으로 여전히 이 문제는 해결되지 않았지만, 객체지향에 대한 시각과 어떻게 객체지향 설계 연습을 할 수 있을지 길을 열어주는 책이다. 우리는 흔히 객체지향 언어 기본서를 보며 객체지향 문법(?)에 대해 배운다. 예를 들면 상속, 인터페이스, 다형성 등. 그런데 이런 기본서에는 객체지향 이야기를 하며 실세계의 모든 것을 객체로 바라본다고 이야기한다. 틀린 말은 아니지만, 좀 더 정확히 객체지향을 다른 관점에서 바라볼 필요가 있다는 것을 제시하고 다양한 시각으로 객체지향에 관해서 설명하고 생각하게 한다..
발표자료 Booting Spring Data RESTSpring Data REST 예제Spring Data REST #1 IntroductionSpring Data REST #2 동작 원리Spring Data REST #3 내부 동작 정말 Repository Interface로만 API가 동작할까? 당연히 Repository Interface만 있다고 해서 API가 동작하는 건 아니다. 우리가 Spring MVC를 사용해서 Controller를 만들어서 API를 만들듯이, Spring Data REST에는 이미 만들어진 Controller가 존재한다. 차이점이 있다면, 기존에 만들던 Controller와는 조금 다른 Spring Data REST만의 Controller를 만든다. @Reposi..