일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스트림
- 이스티오
- 토비의 스프링
- OS
- redis
- Java
- 백준
- MSA
- gradle
- jvm
- K8s
- mysql
- thread
- IntellJ
- 보조스트림
- list
- 자바
- SpringBoot
- 자바 ORM 표준 JPA 프로그래밍
- GC
- Stream
- 쿠버네티스
- 토비의 스프링 정리
- Collection
- Real MySQL
- Kotlin
- spring
- Stack
- JPA
- 스프링
- Today
- Total
목록Spring (38)
인생을 코딩하다.

Mockito를 활용해 단위테스트를 진행할 떄 PersonService.java에서 person.set(personDto) 로직을 주석처리 하였는데도 TestCode가 작동을 한다. 중요 로직을 주석처리 하였는데 오류를 검출하지 못한채로 검증을 해버리게 된다. 이유는 PersonServiceTest.java에서 verify(personRepository, times(1)).save(any(Person.class)); 어떠한 로직이든 person class면 괜찮다고 생각하기 때문이다. set을 주석처리 하여서 personDto가 들어가지 못하기 때문에 값은 다 null이 들어가지만, 밑에서 save가 되기 때문에 통과 되어버린다. 그래서 오류 검출을 하지 못하게 된다. 이 문제를 해결하기 위해 Argum..

의존성 주입의 종류로는 Constructor, setter, field 타입이 있다. 생성자 주입 (Constructor) Setter 주입 Field 주입 클린코드를 위해서는 필드 주입보다 생성자 주입을 권한다. 간단히 정리하자면 - NullPointExcepton을 방지할 수 있다. - 객체에 final 키워드를 사용 할 수 있다. - 순환 참조를 앱 구동시 검출 할 수 있다. - 생성자의 인자가 많아지면 코드가 더러워져 리팩토링을 하게 된다. Spring Document에 나와있는 내용에도 필드주입은 언급도 안하고, 생성자 기반 주입(Construcor Base Injection)과 수정자 주입(Setter Base InJection)의 차이점에 대해서 설명하고 있다. 또한 생성자 기반 주입을 옹호..

빌드를 수동으로 실행하고 브라우저를 새로고침 하여 결과 확인하는 것을 자동으로 해준다. gradle에서 사용하려면 build.gradle에 runtimeOnly('org.springframework.boot:spring-boot-devtools') 한 줄만 의존성 추가 해주면 된다. 그 후 IntelliJ 에서 - File -> Settings [Ctrl-Alt-S] -> 검색 Compiler -> Build project automatically - [Ctrl-Shift-A] -> Registry... -> compiler.automake.allow.when.app.running 보통 devtools는 default값으로 설정되어 있지만, 좀 더 커스텀하게 하고싶으면 이제 application.prop..

필자는 과거에 한 것이라 STS로 했지만, STS말고 인텔리제이로 하시는 것을 추천드립니다. 학생분들은 인텔리제이가 무료이기도 하고, 또 인텔리제이가 훨씬 편합니다.(자동완성, 설정 등 여러면에서) 인텔리제이를 기반으로 이 포스팅을 보셔도 따라하거나 이해하는데 전혀 지장없습니다. 이 글은 Maven이고 요즘은 gradle로 넘어가는 추세입니다. 1. hello1 프로젝트 1) 프로젝트 생성 STS의 메뉴: File - New - Spring Starter Project Name: hello1 Packaing: War Package: net.skhu Spring Boot Version: 가급적 위 버전과 가장 가까운 2.x.x 버전을 선택하자. spring boot가 계속 버전 업이 되면서, 호환성 문제가..

스프링에 대한 얘기를 하면 빠지지 않는 개넘이 '의존성 주입'이라는 개념이다. 프레임워크를 이용해 본 적이없는 경우라면 쉽게 이해하지 못하는 개념이라 간단한 이야기로 정리해보겠다. 의존성이라는 것은 하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다는 것을 의미한다. 그리고 주입은 말 그대로 와부에서 밀어넣는 것을 의미한다. 즉 의존성이 필요한 객체에 필요한 객체를 찾아서 '주입'하는 역할을 하게된다. 저욱 자세한 것은 구글링을 통해 알아보면 좋겠다. 밑에 예제는 레스토랑 객체를 만들고 레스토랑에서 일하는 세프 객체를 주입하는 예제이다. (실제 코드를 개발할 떄는 그다지 사용될 일이 없는 에제지만, 의존성 주입 코드를 통해서 이해하는 용도로 사용하려고 한다.) 우선 lombok을 이용해서 s..

스프링 툴로는 현재 Eclips, STS, Intelli J 등을 쓰고 있습니다. 각 툴의 장단점과 사용법은 구글링하시면 나옵니다. 참고로 Intelli J는 일정 무료기간이 지나면 비용이 드는데, 학생분들은 졸업전까지 공짜로 쓸 수 있으니 Intell J를 추천합니다. 전 Eclips를 이용한 방법으로 설명해보겠습니다. 우선 톰캣이 돌아간다는 가정하에 Eclips상단 메뉴에 Help - Eclips Marketplace를 누릅니다. Spring Tools 4 (aka Spring Toll Suite 4) 4.5.0 (버전).RELEASE 를 설치합니다. 그 후 Package Explorer에서 마우스 우클릭 New - Spring Legacy Project Project name에 적당한 이..