본문 바로가기
반응형

Spring17

다른 언어로 성장하기 썸네일 이미지는 데브경수님의 인스타툰에서 가져왔습니다. 작년 4월까지 JVM 언어 / Spring 을 사용하면서 커리어를 쌓다가, 최근 이직을 하면서 Node.js (JS / TS) 에서 개발경험을 쌓고 있다. 처음 Node.js를 만났을때는 2016년이였는데, 당시엔 "Node.js와 Express를 활용한 블로그 API 2시간 만에 만들기" 같은 류의 컨텐츠가 유행이였다. Express가 주력으로 선택될때의 Node.js 코드 스타일과 아키텍처, 컨벤션등은 기존의 프레임워크와는 꽤나 많이 달랐다. 그래서 당시 스프링 프레임워크가 주력이였던 내 입장에서는 여기에서 추구하는 아키텍처나 패턴은 무엇일까? 궁금하기도 했다. 그리고 이후에 어떤 방향성으로 발전할까도 궁금했다. 시간이 흘러 최근에 Node.js.. 2022. 12. 16.
테스트 픽스처 올바르게 사용하기 xUnit에서는 테스트 대상 시스템 (System Under Test, 이하 SUT) 를 실행하기 위해 해줘야 하는 모든 것을 테스트 픽스처라고 부른다. 처음 테스트 코드를 배우게 되면 이 테스트 픽스처 부분에 대해서 완전히 오해하는 경우를 자주 본다. 최근에 팀에 단위 테스트를 전파하고 코드리뷰를 진행하는 과정에서 다들 비슷한 오해를 하고 있는걸 발견하고 작성하게 되었다. 모든 코드는 TypeScript와 Jest로 작성되었다 1. beforeEach (setup) 등 사용할 경우 아래 코드를 보면 공통된 테스트 픽스쳐를 beforeEach 로 처리하였다 describe('Order1', () => { let sut: Order; beforeEach(() => { sut = Order.create(10.. 2021. 10. 30.
계층형 아키텍처 학교 다닐때 잠깐 JAVA 관련 수업을 들은적이 있다. 그때 수업 내용은 넷빈즈(Netbeans) IDE를 통해 JAVA로 윈도우 애플리케이션을 만드는 것이였다. 간단한 시간표 관리 프로그램을 만드는 과제는 얼핏보면 웹과 크게 다르지 않았다. (이미지 출처: blog.asata.pe.kr) 개발 자체는 꽤나 간단해서 JAVA (Swing)로 애플리케이션 UI와 로직을 작성하고, 로컬 PC에 설치된 Database에 접근해서 시간표를 저장하고 불러오는 방식이였다. 당시에는 계층 (Layer) 혹은 모듈화라는 개념이 없어서 UI를 담당하는 클래스에서 검증, 계산, DB 접근등을 모두 처리했었다. 기능 자체는 잘 작동했고, 실제로 과목 점수도 잘 받았다. (컴공과 수업이 아니였어서…) 하지만 이게 실제 회사의.. 2021. 10. 2.
Get 요청시 LocalDate 필드에 2월 31일 올 경우 정상 처리 방법 (feat. @DateTimeFormat 제거하기) Spring Boot로 LocalDate를 Request Parameter로 받을 경우 예상치 못한 이슈가 발생합니다. 이번 시간에는 여러 이슈 중 하나인 초과된 날짜에 대해 LocalDate로 받으면 400에러가 발생하는 경우를 어떻게 안전하게 해결할지에 대해서 이야기해보겠습니다. 모든 코드는 Github에 있습니다. 문제 상황 예를 들어 다음과 같은 상황이 있다고 가정해봅시다. 날짜를 파라미터로 하는 API를 제공하고, 다른 팀에서 해당 API를 사용한다고 가정해봅시다. 해당 파라미터는 문자열이 아닌 LocalDate를 필드값으로 선언해서 사용합니다. 그럼 사용하는 팀에선 아래와 같은 투정(?)을 할 수 있습니다. "아니 LocalDate에 2020-02-31을 넣으면 2020년 2월 29일로 잘 반.. 2020. 5. 25.
@Request Body에서는 Setter가 필요없다? 회사에서 근무하던중 새로오신 신입 개발자분이 저에게 하나의 질문을 했습니다. POST 요청시에 Setter가 필요없는것 같다고. 여태 제가 알던것과는 달라서 어떻게 된 일인지 궁금했습니다. 정말 POST 요청시에는 Setter가 필요없을까요? 그럼 GET 요청시에는 Setter가 필요할까요? 한번 확인해보겠습니다. 모든 코드는 Github에 있으니 참고하세요 1. Post 요청 테스트 첫번째로 POST 요청시 Setter가 필요없는지 먼저 테스트해봅니다. 테스트해볼 RequestDto는 아래와 같습니다. @Getter @ToString @NoArgsConstructor public class RequestSetterDto { private String name; private Long amount; @D.. 2019. 2. 26.
[Querydsl] 다이나믹 쿼리 사용하기 안녕하세요! 이번 시간에는 Querydsl에서의 다이나믹 쿼리를 어떻게 작성하면 좋을지에 대해 진행합니다. 처음 Querydsl을 쓰시는 분들이 가장 많이 실수하는 부분이니 그럼 시작합니다! 모든 코드는 Github에 있으니 참고하세요 :) 1. 문제 상황 예를 들어 상황에 따라 조건문이 생성 되어야 한다고 보겠습니다. name이 오면 where name = name address가 오면 where address = address phoneNumber가 오면 where phoneNumber = phoneNumber 2개 이상이 오면 모두 포함 where name = name and address = address and phoneNumber = phoneNumber 즉, 파리미터가 어떻게 오는지에 따라 .. 2019. 1. 25.

728x90
반응형