분류 전체보기 478

젠킨스(Jenkins) vs Code Build vs Git Actions

모두 빌드 자동화의 툴 사이드프로젝트에서 팀원과 인프라 구축을 위해 ci.cd 구축을 어떤 툴을 이용해서 진행할거냐를 의논하기위해 정리한 글입니다. 따라서 매우매우 가볍고 간단하게만 비교 정리한 글! ➡️ 결론은 jenkins로 해보기로함 [목차] jenkins 란 code build 란 git actions 란 jenkins vs git actions Jenkins ■ 젠킨스(Jenkins)의 개념 : 젠킨스(Jenkins)는 거의 모든 언어의 조합과 소스코드 리포지토리(Repository)에 대한 지속적인 통합(CI) 과 지속적인 배포(CD) 를 무료로 제공합니다. ■ 젠키스 사용 장점 프로젝트의 표준 컴파일 환경에서 컴파일 오류 검출 코딩 규약 준수여부 체크 프로파일링을 통해 소스 변경에 따른 성능..

Infra/CI, CD 2022.12.13

함께 자라기 - 애자일로 가는 길 | 김창준

이 책은 백엔드 신입으로 취직하고 지금은 사라진, 전 사수님 께서 처음으로 추천해준 책이다. 그렇게 읽어볼 책 목록 (읽은 책 거의 없음) 에 기약없이 존재하다가, 한 2달전인가? 같이 공부했던 킹갓제너럴엠페리얼 지인께서 선물로 주어서 가지고있다가, 최근에 다 읽었다..!! (Shout out sendkite) 이책을 시작으로 책을 잘 읽어봐야지.. 함께 자라기를 읽고 기록해볼만한 내용과 소감 짧게 정리 레쓰고 1. 자라기 "자라기" == "학습" 이다. 일반적으로 불확실성이 높은 경우일수록 학습이 중요하다. 성인? 사회인은 야생학습을 할 줄 알아야한다. 야생학습은 학교학습에 비해서 아래와 같은 특징을 가진다 야생학습은 대부분 협력적이다 (학교학습은 대부분 개별적이다.) 야생학습은 대부분 비순차적이다. ..

[spring] WebFlux란 + Reactor 객체란 (Mono<> 와 Flux<>)

아래의 글 순서대로 읽으시면 해당 글을 이해하시는데 족흠 도움이 됩니다 🙏 (어쩌면 안될지도...^^) ⚙️ Block, Non-Block, sync(동기), Async(비동기) 의 간단한 개념 [Spring] Webclient 란❓ (RestTemplate vs WebClient) [Spring] WebClient 사용방법 가이드 (now) [spring] WebFlux란 + Reactor 객체란 (Mono 와 Flux) 이번 글에서는, Spring webflux 와 reative programing & reactor library 에 대한 개념 이해와 reactor 객체인 mono 와 flux를 다루는 방법의 이해를 목표로합니다 [목차] Spring WebFlux 개념 Spring WebFlux 생긴..

Spring/Spring Boot 2022.12.07

[Error] Jackson ObjectMapper : 멤버변수가 1개일 때

📌 문제 상황 1. Spring 에서 Patch 로 Json body 를 @RequestBody Dto Class 로 받아오는 부분을 리팩토링 2. 기존 Dto Class 는 단 1개의 멤버변수를 가지고, @Getter @Setter 가 적용되어 있었음 3. 기존의 지식 - @Setter 없이 생성자만 있으면 jakson 에서 매핑이 된다는 걸로 인지하여 @Getter @Setter ➡️ @Value 로 수정 💥붐 ~~ json mapping error 발생 error - code DefaultHandlerExceptionResolver - Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse err..

Spring/Spring err 2022.11.28

[Spring] WebClient 사용방법 가이드

아래의 글 순서대로 읽으시면 해당 글을 이해하시는데 족흠 도움이 됩니다 🙏 ⚙️ Block, Non-Block, sync(동기), Async(비동기) 의 간단한 개념 [Spring] Webclient 란❓ (RestTemplate vs WebClient) [Spring] WebClient 사용방법 가이드 (now) [spring] WebFlux란 + Reactor 객체란 (Mono 와 Flux) 저번 포스팅에 이어서 WebClient 사용방법에 대해 공부해보겠습니다. 📌 Spring WebClient 사용하기 공식문서에 나온내용을 토대로 해석해놓은 블로그글이 굉장히 많기 때문에 공식문서를 하나씩 보기보다는, 간단한 사용방법과 제가 어려웠던 부분을 토대로 정리를 해보겠습니다. 1) WebClient 종속성..

Spring/Spring Boot 2022.11.23

🚀 Spring Request DTO 추상클래스로 받아오기 (까지의 트러블 슈팅..😂)

이번 포스팅은 스프링에서 Client 에서 받는 Json 데이터를, 조건에 따라 다른 유효성 검사를 하기위한 과정에서의 트러블 슈팅 기록입니다.. ➡️ 상황 사내에서, 쿠폰 정책에 따라 각각의 쿠폰을 등록할 떄, 필요한 조건이 달라졌기 때문에 기존의 단일 유효성 검사에서, 어떤 쿠폰이냐에 따라서 Custom 한 Validation 을 적용해야하는 상황이였습니다. [문제 직면부터 시도과정] @RequestBody 로 받아오는 DTO 클래스 생성자에 throw Exception ➡️ 내가 던진 Exception 이 아닌 예상치 못한 `Json Parse Error : HttpMessgeException` 이 던져지고, `ClassCastException`이 터짐.. 문제 해결 후, 확장성을 고려하여 DTO ..

Spring/Spring Boot 2022.11.17

[Spring] Webclient 란❓ (RestTemplate vs WebClient)

아래의 글 순서대로 읽으시면 해당 글을 이해하시는데 족흠 도움이 됩니다 🙏 ⚙️ Block, Non-Block, sync(동기), Async(비동기) 의 간단한 개념 [Spring] Webclient 란❓ (RestTemplate vs WebClient) (now) [Spring] WebClient 사용방법 가이드 [spring] WebFlux란 + Reactor 객체란 (Mono 와 Flux) 📗 이번 포스팅에서는, Spring 에서 외부 API 와 통신하는 WebClient 에 대해서 공부해보고자 합니다...!!!! 옛날 글에서 간단하게 Spring RestTemplate 에 대해서 잠깐 공부한적이 있는데 Spring 5.0 부터는 WebClient를 권장하고 추후부터 RestTemplate 는 de..

Spring/Spring Boot 2022.11.08

⚙️ Block, Non-Block, sync(동기), Async(비동기) 의 간단한 개념

아래의 글 순서대로 읽으시면 해당 글을 이해하시는데 족흠 도움이 됩니다 🙏 ⚙️ Block, Non-Block, sync(동기), Async(비동기) 의 간단한 개념 (now) [Spring] Webclient 란❓ (RestTemplate vs WebClient) [Spring] WebClient 사용방법 가이드 [spring] WebFlux란 + Reactor 객체란 (Mono 와 Flux) https://www.youtube.com/watch?v=IdpkfygWIMk 해당 테크톡 정리 글!! [용어 약속] 제어권의 반환 반환 - 제어권의 반환 결과값의 전달 함수의 return 값 Block 과 Non-Block Block 과 Non-Block 의 요지는 제어권에 있습니다. 제어권이란 행동할 수 있는..

[Junit] Test Fixture 란 ❓

Test Fixture 의 이해를 위한 글입니다. Test Fixtures 개념을 실제로 사용하는 2가지 방법을 다룹니다. 코드는 ⚙️ Github 에 있습니당!! Test Fixture 란 일종의 개념이라고 생각합니다. 중복 발생되는 무언가(행위)를 고정시켜 한곳에 관리하도록 하겠다는 개념. Test Fixture 를 사용 예시 금액과 나라를 가지고있는 Money 객체가 있다고 해봅니다. @Getter @AllArgsConstructor @EqualsAndHashCode public class Money { private int money; private String country; /** 돈 더하기 **/ public Money add(Money anotherMoney) { checkOrigin(an..

[Spring DB 1편] (3) 트랜잭션의 이해

인프런 김영한 - 스프링 DB 1 강의를 듣고 정리한 글 입니다. 목차 1. 트랜잭션이란 트랜잭션(Transaction)을 이름 그대로 번역하면 거래라는 뜻입니다. 이것을 풀어 이야기하면, 데이터베이스에서 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해주는 것을 뜻합니다. 모든 작업이 성공해서 데이터베이스에 정상 반영하는 것을 커밋(Commit)이라 하며, 작업 중 하나라도 실패해서 거래 이전으로 되돌리는 것을 롤백(Rollback)이라고 합니다. 2. 트랜잭션 특징 (ACID) 트랜잭션은 ACID라 하는 4가지 특징을 보장해야합니다. 원자성 (Actomicity) : 트랜잭션 내에서 실행한 작업들은 마치 하나으 ㅣ작업인 것처럼 모두 성공하거나 모두 실패해야한다. 일관성 (Consistency) : ..