Author

2023 3/4 중간점검

3Q 활동정리 지난 2Q는 횡적인 확장과 JD의 얼라인을 맞추는데 중점을 뒀다면, 3Q는 실제와 종적인 깊이로 다가간다. 무엇을 했는가 Acceptance Test Driven Development 인수 테스트를 배우면서 얻은 것들 놀랐던 점 (aka 인지부조화) Implementation always comes first ❌ Using middleware ⇢ ✅ Implementing requirements Again… ORM, design, domain 결국 다시 설계 Kotlin 자바랑 비교해서 신기했던 점 자바랑... » read more

포기 하기 직전에

이 글은 더 화이팅 신장판 1권과 2권에 있는 작가의 에피소드를 정리한 내용이다.작가는 일본에서 더 화이팅 이라는 만화로 1억부 클럽의 반열에 들었다. 더 화이팅은 1989년 연재를 시작해 아직도 연재중이고 단행본 기준으로 130권을 넘게 발매된 만화다. 그러나 그도 더 화이팅을 연재하기까지 계속되는 실패와 커리어에 대한 고뇌가 있었는데, 이 만화를 연재하기 까지 에피소드를 아래 가져와봤다. 이 책을 손에... » read more

2023 2/4 중간점검

2Q 활동 정리 뒤늦은 2Q 정리, 너무 바빴고, 사건사고도 많고, 변화도 너무 많았다. 무엇을 했는가 Java Reactor Spring Security 본격 JPA WebSocket 백엔드 구현 SQL Docker 벌려놓은 일 인터넷 강의, 책 이런건 너무 많이 봐서 뺐고 공신력 있는 것들만 모아놓음. 생각 변화 그러나 ChatGPT에서 사실을 알기 위해서는 내가 더 많이 알고 있어야 하고사실을 확인하기 위해... » read more

스프링 부트에서 Multipart – 다운로드편

1편의 업로드 기능을 구현했다면 2편에서는 다운로드를 위한 Controller 와 리소스를 가지고오는 부분에 대해서 설명하겠다. 전편에서 업로드를 구현하기 위해 Multipart 를 사용했다면 이번 편에서는 파일 식별자로 어떻게 파일을 특정하고 응답으로 파일을 내려줄 수 있는지 구현해본다. 다운로드 바이너리는 org.springframework.core.io.Resource 를 통해 응답을 내려주는것이 특징이다. 컨트롤러부터 보자. 컨트롤러에서 파일을 내려 줄 때 두가지 유형이 있다. 이 둘의 차이는... » read more

스프링 부트에서 Multipart – 업로드편

시작에 앞서서.. 이번에도 전편의 인기에 의해 불려나온 후속편이다. 지난번 아무것도 모르던 시절, 아파치의 commons-io 를 활용해 CommonsMultipartResolver 로 구현했다. 이번에는 스프링의 MultipartFile 를 이용해 파일 업로드 기능을 구현해보겠다 (현재 개인 프로젝트에 이 방식을 사용중) 아울러 김영한 강사님의 스프링 MVC 강의에 이같은 내용이 많기 때문에 이번에는 파일을 서빙하고 저장하고 관리되는 관점에서 글을 더 풀어보겠다. 이 글을... » read more

2023 1/4 중간점검

1Q 활동 정리 2022 4분기 큰 결정 후 일어났던 일들에 대한 기록. 지원현황 경력지원으로 현재 하고 있는 커머스 분야와 자바에 범위를 좁혀서 선별 지원 결과 면접 및 코테 소감 관심분야 찾기 이것저것 한바닥 쓰다가 다 지우고 결론은 ‘DB 안쓰는 도메인은 무엇이 있을까?” 새로 알게 된 것 Kafka (1월) JPA (1~2월) NoSQL (2월) Docker (2월) OAuth2..... » read more

Redis를 RDB처럼 쓰려고 했던 시도

🫠 실패에 대한 짧은 결론 : 레디스는 인메모리 DB로써 빠른 IO를 요구하는 작업에 최적화 되어있다. 예를 들면 세션 클러스터링이나 캐싱에 많이 사용된다. 그러나 Entity를 계층 구조로 만들고 깊은 내부의 있는 필드에 Document나 RDB 하듯 LIKE 쿼리를 구현하는 것은 바람직하지 않아보인다. 물론 단순한 구조의 Entity에 id필드를 지정하고 id를 가지고 직렬화/역직렬화 하는 것은 가능하다. 결론적으로 key로 value에... » read more

Spring의 테스트 주도 개발 스타일

TDD란 무엇인가? 를 떠나서 스프링 프로젝트에서 TDD를 어떻게 진행하는지에 대한 정리. 여러 스타일 중 한가지 서비스 로직 엔티티와 영속성 API 테스트 통합 테스트

JPA의 연관관계와 즉시로딩 이슈

연관관계 매핑 테이블과 객체의 연관관계에 대한 패러다임의 차이가 있다. 테이블은 연관관계라고 할 만한 것이 없다 (constraint 제외) 테이블간 연관관계가 필요하면 JOIN을 통해 관계를 갖는 방법 뿐이다. 반면 객체는 참조용 필드가 있으면 그쪽으로 참조가 가능하다. 클래스 내 멤버의 참조를 통해 이뤄진다. 이를 통해 양방향과 단방향 모두 관계를 정립할 수 있다. 연관관계의 주인 N:1 외래키를 들고있는 쪽이... » read more

Spring WebFlux vs Spring MVC

WebFlux는 기존의 Spring MVC와 무엇이 다른가? 실제로 Async를 활성화 한 Spring MVC 와 Spring WebFlux의 단순 처리 속도 차이는 있다. (약 5배) Spring MVC (with Async) Spring WebFlux 볼만한 글