회고 방법 함께 자라기(김창준 저) 책을 읽고, 회고를 시작해보려고 한다. 그 전에 회고는 어떻게 작성하는 것인지 간략하게 정리해보았다. 회고를 통해 더 나아진 나를 만들어보자 !! 💪🦸♂️🦸♀️ . YWT time : within 1 minute each 한 일 일을 통해 명확하게 알게되었거나 이해한 부분들을 정리 배운점 배운점들과 시사점들을 정리 앞으로 할 일 응용에 초점을 맞추어 배운 것들을 어디에/어떻게 적용할지 정리 . AAR(After Action Review) time : Within 10~30 minutes 의도한 결과는 무엇이었는가? (초기 목표) 실제 어떤 일들이 일어났는가? (현실) 계획과 실제 결과의 차이는 왜 발생되었는가? (배운점들) 지속, 개선 혹은 포기할 것들은 무엇인가,..
@Transactional 잘 사용해보기 @Transactional 을 사용하고는 있지만.. 잘 모르고 저스트 그냥 사용하고 있다 보니 간단하게라도 탐구를 해볼 필요성을 느끼게 되었다. 그래서.. 오늘도 어김없이 탐정놀이를 해보려고 한다. 🔍🤠🔎 . 시작하기에 앞서, 트랜잭션 구성은 @Configuration, XML 기반 설정 말고도 애노테이션 기반으로 설정할 수 있다. 주로 애노테이션 기반으로 많이 사용되는 것 같다. 애노테이션 방식은 선언적 트랜잭션이라고 불리고, 선언 시 트랜잭션 기능이 적용된 프록시 객체가 생성된다. . @Transactional으로 생성된 프록시 객체는 @Transactional이 적용된 메소드가 호출될 경우, PlatformTransactionManager를 사용하여 트랜잭션..
Java PlayGround NEXTSTEP 자바 플레이그라운드 with TDD, 클린 코드에서 새롭게 배우고 깨닫게 된 내용들을 기록한 글입니다. . Part01. 단위테스트, TDD . 시작 소트웍스 앤솔러지에서 말하는 객체 지향 프로그래밍을 잘하기 위한 9가지 원칙 한 메서드에서 오직 한 단계의 들여쓰기만 허용하자 else 예약어를 사용하지 말자. 모든 원시 값과 문자열을 포장하자. 한 줄에 점을 하나만 찍자. 축약과 같이 줄여 사용하지 말자. 모든 엔티티를 작게 유지하자. 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 말자. 일급 컬렉션을 사용하자. getter/setter/프로퍼티를 사용하지 말자. 단위 테스트 JUnit는 프로덕션 코드를 편리하게 테스트할 수 있도록 도와준다. JUnit 5...
JUnit 5 Parameterized Tests Guide to JUnit 5 Parameterized Tests를 통해 Parameterized Test를 학습하며 정리한 글입니다. . 테스트 코드는 만들었는데 여러 값으로 테스트를 해보고 싶은 적이 있지 않은가?! 😯 코드가 중복되는 건 싫은데.. . 그렇다면 Parameterized Test를 사용해볼 때이다.🕵 Parameterized Test는 서로 다른 인수로 동일한 테스트를 여러 번 실행해볼 수 있는 유용한 기능이다. 일반 테스트와 다른 점은 @ParameterizedTest를 사용하는 것과 @ValueSource에 인수를 정의해주는 것뿐! Dependencies pom.xml org.junit.jupiter junit-jupiter-par..
Java Code Conventions 코드를 작성하면서 대부분 이런 고민을 해보았을 것이다. "여기를 띄어 써야 깔끔할까?", "여기는 줄 바꿈을 해야 깔끔할까?" 등등.. 맞춤법이 틀린 것 처럼 코드가 찝찝하게 느껴진 적이 있지 않은가!! . 그렇다면.. 코우드 컨붼션(Code Conventions)이 필요한 때이다. ✏✏✏ . Google Java Style Guide 를 읽어보면서 참고할만한 내용만 간략하게 정리해 보았다. 캠퍼스 핵데이 Java 코딩 컨벤션 도 참고해보면 좋을 듯하다. . 추가로 Code Convention에 참고가 될만한 Clean Code 내용들을 간략하게 남겨보았다. Source File 모든 소스 파일은 UTF-8로 인코딩하기 Unix는 새 줄 문자를 LF(Line Fee..
Introduction to AssertJ dependencies dependencies { testImplementation "org.junit.jupiter:junit-jupiter" testImplementation "org.assertj:assertj-core" } single static import를 통해 test class를 쉽게 추가할 수 있다. import static org.assertj.core.api.Assertions.*; 참고로, assertThat() 메서드만으로는 아무것도 증명할 수 없다. 증명의 대상을 설정하는 정도로 생각하면 좋을 것 같다. assertThat(anything); Object isEqualTo() 메서드는 객체의 참조를 비교한다. 따라서, 객체의 필드를 비..
[NoSQL] MongoDB 탐구하기 회사에서 MongoDB를 사용하는 프로젝트가 있다. 사실 저장, 수정, 조회, 삭제 api 활용이 전부인지라.. 그냥.. 사용하고 있었다. It's just... 😲 😨 😱 . 지금은 MongoDB를 효율적으로 사용하기 위해 몽고와 친해져야 할 때이다.🤭 🍬 🍭을 챙겨서 몽고의 마음을 사로잡아보자. . 참고로, MongoDB와 이제 막 친해지기 위한 단계로 깊은 내용은 담지 않았다...😢 깊은 내용은 몽고와 더 친해지면 준비할 예정이다.🧐 . 참고로, kciter 님의 MongoDB 이해하기 글이 많은 도움이 되었다. kciter 님 글과 MongoDB Manual을 참고하여 간략하게 정리해보았고, 자세한 설명은 각 링크를 참고해보면 좋을 것 같다. NoSQL Not..
Message Queue (Apach Kafka) A long~ time ago 는 아니고, 사알짝 머언 옛날부터.. 🐅 많은 기업에서 Message Queue 를 아주 활발하게 사용했다고 하는데.. Message Queue가 뭣인지 한번 탐구해 보려고 한다. 🕵 다들 돋보기 들고 따라와 보시게! 🤠🔎 . 참고로, 다양한 Message Queue 중 높은 처리량과 좋은 성능을 지닌 Kafka 중심의 설명이 될 것 같다.🧐 최범균님의 kafka 조금 아는 척하기 영상이 정말 많은 도움이 되었다. 메시지 지향 미들 웨어(Message Oriented Middleware: MOM)는 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서의 데이터 송수신을 의미 MOM을 구현한 시스템이 메시지 큐(Message ..