개발
-
DDD START개발/책 2022. 9. 13. 02:20
2022-09-12 chapter 1 도메인 시작 이 챕터는 도메인 모델과, 도메인 모델을 엔티티와 밸류로 분류하여 개념을 사용하고 있다. DDD와 MSA에 대한 시도로 블로그 등을 통해 접했던 내용이지만 아주 쉽게 설명한 글을 통해 다시 한 번 정리할 수 있었다. 또한, 작년 우테코 PRO에서 객체지향코드를 강조하며 객체에 불명확한 set 메서드 네임에 대한 이유를 다시 보게 되면서 반가운 감이 있었다. 이를 인지한 상태에서 메서드를 정의할 때, 엔티티에서는 set이 오히려 적절하다고 생각하는 경우가 많아 예시처럼 anti pattern, 피해야하는 규칙을 생각하기 보단 우선적으로 고려하는 것에 따르는게 좋다고 생각하고 있다. 네이밍 같은 경우 책에서 얘기하는 의미 전달이다. 또한 밸류 타입에서 불변객..
-
스프링 핵심 원리 - 고급편개발/강의 2022. 5. 21. 23:59
몇 년간 사용해오면서 익숙하면서도 아직 모르는 부분에 대한 불안과 갈증으로 고급편을 수강하게 되었다. 2022-05-21 예제 만들기 아주 간단한 로그 만들기 강좌로 이 강의를 들으면서 느낀 점은 매번 느끼는 거지만 김영한님은 친절하게 동작원리를 설명하신다는 거다. (예를들어 @Service, @Repository를 사용하면서 해당 어노테이션에 @Component가 있는 것을 보여주며 어떻게 컴포넌트스캔에 감지될 수 있는 것을 설명하는 등) 처음 스프링을 접하는 사람도 아주 간편하게 프레임워크와 돌아가는 구성을 그려보며 이해할 수 있지 않을까라는 생각이 들었다. 그리고 우연찮게 얻은 꿀팁은, 에러가 있을때 f2키를 누르면 해당 에러로 바로 이동하는 것이다. (스크롤바를 통해 해당 위치 부근으로 바로 가거..
-
만들면서 배우는 클린 아키텍처개발/책 2022. 4. 20. 23:31
1독(2022-04-20) 전통적으로 사용하고 있는 계층형 아키텍처와 비교하면서 육각형 아키텍처에 대한 설명을 중점적으로 다루고 있다. 이 책에서 마음에 들었던 점은 why로 시작하여 how로, 물음표로 시작하여 자연스럽게 느낌표로 끝나도록 서술되어 있다. 또한, 적절한 그림과 예제코드로 이해를 돕고 있다. 이미 현재 업무에서 MSA와 헥사고날 아키텍처를 도입하고 있어 익숙한 부분이 많았지만 읽으면서 좀 더 호기심을 갖고 문제를 깊게 생각해볼 수가 있었다. 또한, 단위, 통합, 시스템 테스트 코드를 고민하며 적절하게 작성하려고 했기에 테스트코드에 대한 예제는 앞으로의 고민을 많이 줄여주는데 큰 도움이 된 것 같았다. 이 책에선 헥사고날의 유즈케이스, 어댑터, 도메인 등의 역할에 대해서도 잘 설명하고 있다..
-
spring에서 private 테스트는 어떻게 할까? (feat. ReflectionTestUtils, kotlin)개발/Spring 2022. 3. 27. 23:38
ReflectionTestUtils.getField(target(Object or class), fieldName) as fieldType 테스트코드를 짜다보면 테스트 후 private field가 제대로 바꼈는지 확인하거나 private fun 을 확인하고 싶을때가 있다. 이런경우 spring에 내장되어있는 ReflectionTestUtils 를 사용해서 간단히 테스트를 할 수 있다. https://www.baeldung.com/spring-reflection-test-utils https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/util/ReflectionTestUtils.html 예를 위해 ..
-
@Transactional 옵션을 사용하지 않는다면?개발/Spring 2022. 3. 7. 02:21
일단 기본적으로 @Transactional 에서 많이 사용되는 readOnly 옵션의 default 는 false이다. 때문에 서비스레벨에서 해당 메서드의 Transaction 관리를 하려고 할때 대부분 @Transactional만 붙이고 있는 것이다. 그렇다면 아무런 옵션도 붙이지 않고 jpa를 사용한다면 어떻게 될까? 우선, spring-data-jpa에서 제공하는 JpaRepository의 기본 구현체는 SimpleJpaRepository이다. 내부를 들여다보면 위에서 알 수 있듯 구현 메서드들의 기본 값은 readonly를 띄고 있다. 이제 C-R-U-D에 대해 알아보자. Create 저장하는 메서드에 대해서는 Transactional옵션을 추가 선언하고 있다. 즉 위 default처럼 reado..
-
소프트웨어 장인개발/책 2022. 3. 6. 22:56
(2022-02-12, 2022-03-06) 읽어야지 마음 먹었지만 상당히 늦게 책을 완독하게 되었다. 개발자를 택한 순간부터 좋은 개발자가 되길 꿈꾼다. 이 책은 현실적으로 더 좋은 개발자가 되기 위한 길잡이가 되어준다. 1. 장인 정신을 갖고 스스로의 기술을 발전 시키고 2. 좋은 동료들과 함께 더 좋은 개발 문화를 만드는 것 이 두가지만으로도 적어도 스스로에게 떳떳할 수 있지 않을까 생각된다. 이 책을 읽고 얻은 정보로 다시한 번 다짐한 나의 생각을 정리하자면 1. 커리어의 주인은 나다. 예전부터 이런 생각을 하고 기회가 있으면 활용하되, 없어도 스스로가 주도적으로 행하려는 것에 변화가 없기에 남길 말은 없다. 2. 아니오 라고 말하기. 이것 또한 예전부터 노력하던 습관이다. 또한, 최근 팀원들로 ..
-
mysql varchar size변경개발/MySQL 2021. 9. 28. 11:36
출처 - https://kimdubi.github.io/mysql/varchar/ 대량의 데이터가 적자될 것으로 예상되는 테이블에 컬럼 추가 필요성을 느껴 작업을 하게 되었다. 문제는 스펙에 사이즈가 나와있어, 해당 사이즈를 명확히 할 것인지. 스펙을 정의한 곳에 신뢰가 완전하지 않아 여유를 둘 것인지에 대한 고민이다. 물론 varchar형태가 가변형이기 때문에 크게 해도 성능상 이슈가 없으니 미리 크게 잡아두는게 편하지 않냐는 생각과 명확한 사이즈를 통해 해당 길이의 패턴이나 의미전달을 할 수 있지 않을까란 생각이 또 충돌하였다. 추후 사이즈를 변경하는것에 대한 부담감을 갖지 않도록 사이즈 변경은 db에 무리없이 작업할 수 있는지 알아봤다. 1. varchar size 256 bytes 이하구간에서 증..