코딩 컨벤션을 테스트 하자(feat. Konsist)
개발자로서 팀 단위로 서비스 개발을 위한 코드를 작성할 때 유지보수성을 높이기 위해 일관된 코드 작성, 의존성 방향 제약 등을 위한 팀 내 코드 컨벤션을 작성하거나 본 경험이 있을 것이다. 보통 README.md나 사내 문서에 코딩 컨벤션을 작성해서 개발자들이 숙지하도록 하거나 L...
개발자로서 팀 단위로 서비스 개발을 위한 코드를 작성할 때 유지보수성을 높이기 위해 일관된 코드 작성, 의존성 방향 제약 등을 위한 팀 내 코드 컨벤션을 작성하거나 본 경험이 있을 것이다. 보통 README.md나 사내 문서에 코딩 컨벤션을 작성해서 개발자들이 숙지하도록 하거나 L...
우리가 이렇게 유명한 라이브러리인 Querydsl을 Kotlin JDSL로 변경하게 된 계기는 무엇이며 변경하면서 우리가 겪었던 이슈나 전환 시 우리가 사용했던 여러 가지 팁들을 공유하면서 전환 이야기를 나눠보도록 하겠다.
블로그를 보다 보면 Null 반환에 대한 글들을 많이 볼 수 있다. 대부분 클린코드에서 말하는 Null 코드는 나쁜 것이니 지양해서 사용해야 한다고 이야기하고 있다. 하지만 과연 나쁘다고 덮어놓고 사용하지 말아야 할까? 특정 언어에서는 Null safety를 지원하지 않기 때문에 ...
최근 Kotlin이 서버 언어로 각광을 받기 시작하면서 Kotlin + Spring으로 서버를 개발하는 케이스가 많아졌다. 그러면서 자연스레 Kotlin으로 JPA를 사용하는 사례 또한 많아졌다. 다만 Kotlin으로 JPA를 사용하다보면, 정확하게는 Entity를 정의하다보면 K...
이 글은 사내 블로그에 작성한 우당탕탕 주문서 개발기 내용을 그대로 가져오면서 나의 블로그의 언어톤에 맞게 변경한 글이다. 최근 도도 카트 팀에서는 정비기간을 마친 후 처음으로 제품 개발을 위한 프로젝트를 성황리에(?) 마쳤다. 약 7주간 진행했던 이 프로젝트는 도도 카트가 제공하...
회사에서 Elasticsearch를 이용해 만들어진 기존 기능을 Spring Data Elasticsearch로 다시 구현하는 작업을 진행중이다. Elasticsearch도 RDB와 같이 Embedded 환경을 구성할 수 있지만 더이상 관리되지 않고 TestContainers를 사...
최근 Kotlin을 이용하여 개발하면서 테스트 코드를 작성할때 Kotest를 주로 사용한다. 이전에 작성한 Comparing Testing Library for Kotlin을 보면 Kotest를 이용한 테스트 코드 작성의 장점에 대해서 적어 두었으니 읽어보면 좋을 것 같다. 이 글...
이 글은 내가 회사에서 대사 기능을 리펙토링하면서 배운것들을 동료들에게 공유하기 위해 정리했던 내용을 옮긴 글이다. 피쳐를 쳐내기 바쁘다는 핑계로 대대적인 리펙토링을 할 기회가 많지 않았는데 이번 리펙토링을 하면서 크게 스프링의 빈을 정의하고 어떻게 주입하는 지에 대해 좀더 배울 ...
이 글은 내가 회사에서 SKU 기능을 개발하면서 고민했던 내용들을 동료들에게 공유하면서 정리했던 내용을 옮긴 글이다. 기능 개발을 맡게 되면서 평소 해보고 싶었던 것들을 도입해 보았고 그것을 해보면서 많은 것들을 배우고 느낄 수 있었다. 아직 갈길이 멀지만 개인적으로는 좋은 경험이...
테스트코드를 작성하다보면 테스트 데이터를 필수적으로 수없이 생성해야 한다. 테스트 데이터를 생성하는 작업은 상당히 번거롭고 지루한 작업이다. 하지만 테스트 데이터를 어떻게 잘 작성하느냐에 따라서 테스트 코드의 가독성이 좋아지기도 나빠지기도 하며 중복되는 코드로 인해 테스트 코드의 ...
Kotlin으로 Spring Data JPA를 사용할 때 많은 고민을 하였다. Entity Class를 정의할 때 특히 그런데, Data Class를 사용할지 말지, val를 사용할지 var를 사용할지 말지 등등 항상 어떻게 하는게 좀더 의미있는지 고민이 된다. 이 글은 그중에서 ...
이전 글에서 RDBMS를 Spring WebFlux에서 사용하기 위해 Spring Data R2DBC 튜토리얼을 작성했었다. 이번 글에서는 Spring WebFlux에서 NoSQL중 하나인 MongoDB를 사용하기 위한 튜토리얼을 작성해 보고자 한다.
이번 글에서는 이전에 작성한 Spring WebFlux - Functional Endpoint With Coroutine Tutorial에 이어 Spring WebFlux를 이용한 또다른 방식의 API를 만들어보는 글을 작성해 보겠다. 이전 글에서는 함수형 앤드포인트방식을 이용하여...
이번 글에서는 이전에 작성한 Spring WebFlux - Spring Data R2DBC tutorial에 이어 Spring WebFlux를 이용한 API를 만들어보는 글을 작성해 보겠다. Spring WebFlux에서는 Web API를 위한 2가지 방식의 프로그래밍 모델을 제공...
Spring WebFlux에 대해서는 작년에 처음 내용을 접하고 나서 관심이 생겨서 개인 프로젝트로 만들어보기도 하면서 조금씩 익혀가고 있다. 현재는 공식 래퍼런스를 번역해가면서 내용을 제대로 익히기 위해 공부하고 있다. Spring WebFlux가 어떠한 컨셉을 가지고 기능을 제...
Kotlin에서 2개 이상의 배열을 합쳐 하나의 배열로 반환해야하는 기능을 구현하는 상황에서 union함수를 사용할지 flatten함수를 사용할지 고민을 한적이 있다. 당시에는 flatten을 사용하였지만 (union을 사용할 경우 반환 형식이 Set이기 때문에 다시 toList함...
Kotlin에서 제공하는 함수들 중에 let, run, with, apply, also라는 함수들에 대해서 알아보자.
이 글은 Spring Data JPA를 이용하여 배치 기능을 개발하면서 겪었던 LazyInitializationException 발생 사례를 토대로 문제 해결방법을 찾아가는 과정을 적어본 내용이다. 사실 이 글에서 중점적으로 다루게될 OSIV(Open Session In View)...
최근 Kotlin이 서버 언어로 각광을 받기 시작하면서 Kotlin + Spring으로 서버를 개발하는 케이스가 많아졌다. 그러면서 자연스레 Kotlin으로 JPA를 사용하는 사례 또한 많아졌다. 다만 Kotlin으로 JPA를 사용하다보면, 정확하게는 Entity를 정의하다보면 K...
이 글은 사내 블로그에 작성한 우당탕탕 주문서 개발기 내용을 그대로 가져오면서 나의 블로그의 언어톤에 맞게 변경한 글이다. 최근 도도 카트 팀에서는 정비기간을 마친 후 처음으로 제품 개발을 위한 프로젝트를 성황리에(?) 마쳤다. 약 7주간 진행했던 이 프로젝트는 도도 카트가 제공하...
이 글은 사내 블로그에 작성한 언어 전환 이야기 내용을 그대로 가져오면서 나의 블로그의 언어톤에 맞게 변경한 글이다. 최근 스포카는 서울 본사 사무실 이전과 함께 도도 포인트 서비스양도 등 많은 변화의 시간을 가졌었다. 내가 몸담은 도도 카트 팀도 앞으로 더 나은 서비스를 제공하기...
이 글은 내가 회사에서 대사 기능을 리펙토링하면서 배운것들을 동료들에게 공유하기 위해 정리했던 내용을 옮긴 글이다. 피쳐를 쳐내기 바쁘다는 핑계로 대대적인 리펙토링을 할 기회가 많지 않았는데 이번 리펙토링을 하면서 크게 스프링의 빈을 정의하고 어떻게 주입하는 지에 대해 좀더 배울 ...
이 글은 내가 회사에서 SKU 기능을 개발하면서 고민했던 내용들을 동료들에게 공유하면서 정리했던 내용을 옮긴 글이다. 기능 개발을 맡게 되면서 평소 해보고 싶었던 것들을 도입해 보았고 그것을 해보면서 많은 것들을 배우고 느낄 수 있었다. 아직 갈길이 멀지만 개인적으로는 좋은 경험이...
이전 글에서 RDBMS를 Spring WebFlux에서 사용하기 위해 Spring Data R2DBC 튜토리얼을 작성했었다. 이번 글에서는 Spring WebFlux에서 NoSQL중 하나인 MongoDB를 사용하기 위한 튜토리얼을 작성해 보고자 한다.
이번 글에서는 이전에 작성한 Spring WebFlux - Functional Endpoint With Coroutine Tutorial에 이어 Spring WebFlux를 이용한 또다른 방식의 API를 만들어보는 글을 작성해 보겠다. 이전 글에서는 함수형 앤드포인트방식을 이용하여...
이번 글에서는 이전에 작성한 Spring WebFlux - Spring Data R2DBC tutorial에 이어 Spring WebFlux를 이용한 API를 만들어보는 글을 작성해 보겠다. Spring WebFlux에서는 Web API를 위한 2가지 방식의 프로그래밍 모델을 제공...
Spring WebFlux에 대해서는 작년에 처음 내용을 접하고 나서 관심이 생겨서 개인 프로젝트로 만들어보기도 하면서 조금씩 익혀가고 있다. 현재는 공식 래퍼런스를 번역해가면서 내용을 제대로 익히기 위해 공부하고 있다. Spring WebFlux가 어떠한 컨셉을 가지고 기능을 제...
현재 운영중인 블로그는 Minimal Mistakes Jkeyll theme라는 깃 블로그 테마를 사용해서 운영중이다. Minimal Mistakes Jkeyll theme를 사용하는 방법은 ZIP파일을 다운로드 받아서 사용하는 방법과 fork를 이용하여 사용하는 방법이 있다. 나...
git gone 명령어에 대해 알아보자.
GIT 사용시 발생할 수 있는 코드 충돌 해결 방법을 알아본다.
너무나 유명한 책이라 이 책이 왜 좋은지 설명할 필요가 없는 책이다. 이제서야 읽어보고 리뷰를 적어보는게 한심스럽기도 하지만 한편으로는 지금 읽음으로써 와닿는 부분이 많았다는 부분에서는 다행이라 생각이 들기도 한다. 리팩터링은 1판에서는 자바로 작성되엇고 2판은 자바스크립트로 작성...
현재 회사에서 Python을 주 언어로 사용하고 있다. 지금까지 나는 Java, Kotlin, Javascript 언어를 주로 사용해왔었고 Python은 코딩 튜터로 활동할때 조금 사용해 보았지만 제대로 안다고 말하기 어려웠다. 그래서 Python에 대해 좀더 깊이 있게 알아보기 ...
디자인 패턴을 좀더 깊게 공부해볼 필요성을 느껴서 처음에 GoF의 디자인 패턴을 사서 보려고 하였는데, 회사 동료가 먼어 읽어보라고 준 책이 Head First Design Patterns이다.
최근 Kotlin이 서버 언어로 각광을 받기 시작하면서 Kotlin + Spring으로 서버를 개발하는 케이스가 많아졌다. 그러면서 자연스레 Kotlin으로 JPA를 사용하는 사례 또한 많아졌다. 다만 Kotlin으로 JPA를 사용하다보면, 정확하게는 Entity를 정의하다보면 K...
이전 글에서 RDBMS를 Spring WebFlux에서 사용하기 위해 Spring Data R2DBC 튜토리얼을 작성했었다. 이번 글에서는 Spring WebFlux에서 NoSQL중 하나인 MongoDB를 사용하기 위한 튜토리얼을 작성해 보고자 한다.
Spring WebFlux에 대해서는 작년에 처음 내용을 접하고 나서 관심이 생겨서 개인 프로젝트로 만들어보기도 하면서 조금씩 익혀가고 있다. 현재는 공식 래퍼런스를 번역해가면서 내용을 제대로 익히기 위해 공부하고 있다. Spring WebFlux가 어떠한 컨셉을 가지고 기능을 제...
리펙터링을 다 읽고 난 후 다음에 읽을 책을 찾기 위해 서점에 들렀다가 눈에 띄여서 구매해 보았다. 사실 이전엔 눈에 띄지 않다가 이제서야 눈에 띈 이유는 현재 백엔드 챕터 리드를 맡고 있는데 팀원간의 관계와 좀더 나은 개발 문화, 환경을 조성할 수 있는 방법을 조금씩 알아가고 싶...
1년 가까이 TDD를 연습하면서 이제서야 이 책을 읽어보았다. 사실 이 책을 읽은지는 한달정도 되었는데 리뷰를 적을지 말지 고민을 많이 하였다. 왜냐하면 내가 이책을 잘 읽었다고 생각이 들지 않았고 내용을 잘 이해하지 못했다고 생각이 들어서 이다. 아무래도 한번더 읽어봐야할 것 같...
개발자라면 누구나 알고 있는 그 책 Clean Architecture를 드디어 읽어 보았다. 이전에 Clean Code를 읽고 Clean Architecture도 꼭 읽어봐야지 했었는데, 이제서야 이 책을 읽게 되었다. 이 글을 통해 내가 이 책을 읽고 생각 나는 키워드 들과 소감...
이 글은 현재 내가 몸담은 회사의 서비스에서 도메인을 정의하고 그것에 맞게 백엔드의 구조를 개선해 가는 과정을 적은 이야기이다. 도메인 주도 개발 전환 이야기라는 장황한 제목을 적긴 했지만 사실 현재 만들어져있는 도도카트의 백엔드 코드를 도메인에 맞게 재 구조화하고 리펙토링하는 과...
이 글은 내가 회사에서 대사 기능을 리펙토링하면서 배운것들을 동료들에게 공유하기 위해 정리했던 내용을 옮긴 글이다. 피쳐를 쳐내기 바쁘다는 핑계로 대대적인 리펙토링을 할 기회가 많지 않았는데 이번 리펙토링을 하면서 크게 스프링의 빈을 정의하고 어떻게 주입하는 지에 대해 좀더 배울 ...
이 글은 내가 회사에서 SKU 기능을 개발하면서 고민했던 내용들을 동료들에게 공유하면서 정리했던 내용을 옮긴 글이다. 기능 개발을 맡게 되면서 평소 해보고 싶었던 것들을 도입해 보았고 그것을 해보면서 많은 것들을 배우고 느낄 수 있었다. 아직 갈길이 멀지만 개인적으로는 좋은 경험이...
개발자로서 팀 단위로 서비스 개발을 위한 코드를 작성할 때 유지보수성을 높이기 위해 일관된 코드 작성, 의존성 방향 제약 등을 위한 팀 내 코드 컨벤션을 작성하거나 본 경험이 있을 것이다. 보통 README.md나 사내 문서에 코딩 컨벤션을 작성해서 개발자들이 숙지하도록 하거나 L...
모두가 노력해 준 덕분에 올해 목표로 했던 기능 테스트로의 전환을 마무리할 수 있게 되었다. 그래서 그동안 우리가 통합 테스트에서 기능테스트로 왜 전환하게 되었는지, 전환하면서 어떤 이슈들을 겪었는지 소개해보고자 한다.
최근 Kotlin을 이용하여 개발하면서 테스트 코드를 작성할때 Kotest를 주로 사용한다. 이전에 작성한 Comparing Testing Library for Kotlin을 보면 Kotest를 이용한 테스트 코드 작성의 장점에 대해서 적어 두었으니 읽어보면 좋을 것 같다. 이 글...
지난 GIT Actions을 이용한 CI/CD 적용기 - CI편에 이어 이번 글은 CD에 대한 내용을 적어보겠다. CD가 Trigger 되는 시점은 master 브런치에 병합이 될때 실행되며, OCCUPYING프로젝트에서 CD는 Continuous Delivery가 아닌 Conti...
이 글은 현재 개인프로젝트로 개발하고 있는 OCCUPYING Repository에 GIT Actions을 이용하여 CI/CD를 적용해 보면서 겪었던 것들을 적은 글이다.
지난 GIT Actions을 이용한 CI/CD 적용기 - CI편에 이어 이번 글은 CD에 대한 내용을 적어보겠다. CD가 Trigger 되는 시점은 master 브런치에 병합이 될때 실행되며, OCCUPYING프로젝트에서 CD는 Continuous Delivery가 아닌 Conti...
이 글은 현재 개인프로젝트로 개발하고 있는 OCCUPYING Repository에 GIT Actions을 이용하여 CI/CD를 적용해 보면서 겪었던 것들을 적은 글이다.
지난 GIT Actions을 이용한 CI/CD 적용기 - CI편에 이어 이번 글은 CD에 대한 내용을 적어보겠다. CD가 Trigger 되는 시점은 master 브런치에 병합이 될때 실행되며, OCCUPYING프로젝트에서 CD는 Continuous Delivery가 아닌 Conti...
이 글은 현재 개인프로젝트로 개발하고 있는 OCCUPYING Repository에 GIT Actions을 이용하여 CI/CD를 적용해 보면서 겪었던 것들을 적은 글이다.
이전에 작성한 글 Message Queue Comparison에서 새로운 프로젝트에 도입할 Message Queue들 중 Amazon MQ와 Amazon SQS를 후보군으로 채택하였었다. 이번 글은 Amazon MQ와 Amazon SQS 중에서 Amazon MQ를 선정한 배경 및 ...
사내 예약 시스템을 만들면서 서버간의 데이터 교환에 Message Queue를 사용하기로 결정하였다. Message Queue 기능을 제공하는 다양한 솔루션이 있는데 이중에서 어떤 것을 사용하면 좋을 지 알아보면서 Message Queue란 어떤것이며 종류가 어떤것 들이 있는지 알...
이전에 작성한 글 Message Queue Comparison에서 새로운 프로젝트에 도입할 Message Queue들 중 Amazon MQ와 Amazon SQS를 후보군으로 채택하였었다. 이번 글은 Amazon MQ와 Amazon SQS 중에서 Amazon MQ를 선정한 배경 및 ...
사내 예약 시스템을 만들면서 서버간의 데이터 교환에 Message Queue를 사용하기로 결정하였다. Message Queue 기능을 제공하는 다양한 솔루션이 있는데 이중에서 어떤 것을 사용하면 좋을 지 알아보면서 Message Queue란 어떤것이며 종류가 어떤것 들이 있는지 알...
이전에 작성한 글 Message Queue Comparison에서 새로운 프로젝트에 도입할 Message Queue들 중 Amazon MQ와 Amazon SQS를 후보군으로 채택하였었다. 이번 글은 Amazon MQ와 Amazon SQS 중에서 Amazon MQ를 선정한 배경 및 ...
사내 예약 시스템을 만들면서 서버간의 데이터 교환에 Message Queue를 사용하기로 결정하였다. Message Queue 기능을 제공하는 다양한 솔루션이 있는데 이중에서 어떤 것을 사용하면 좋을 지 알아보면서 Message Queue란 어떤것이며 종류가 어떤것 들이 있는지 알...
이전에 작성한 글 Message Queue Comparison에서 새로운 프로젝트에 도입할 Message Queue들 중 Amazon MQ와 Amazon SQS를 후보군으로 채택하였었다. 이번 글은 Amazon MQ와 Amazon SQS 중에서 Amazon MQ를 선정한 배경 및 ...
사내 예약 시스템을 만들면서 서버간의 데이터 교환에 Message Queue를 사용하기로 결정하였다. Message Queue 기능을 제공하는 다양한 솔루션이 있는데 이중에서 어떤 것을 사용하면 좋을 지 알아보면서 Message Queue란 어떤것이며 종류가 어떤것 들이 있는지 알...
이전에 작성한 글 Message Queue Comparison에서 새로운 프로젝트에 도입할 Message Queue들 중 Amazon MQ와 Amazon SQS를 후보군으로 채택하였었다. 이번 글은 Amazon MQ와 Amazon SQS 중에서 Amazon MQ를 선정한 배경 및 ...
사내 예약 시스템을 만들면서 서버간의 데이터 교환에 Message Queue를 사용하기로 결정하였다. Message Queue 기능을 제공하는 다양한 솔루션이 있는데 이중에서 어떤 것을 사용하면 좋을 지 알아보면서 Message Queue란 어떤것이며 종류가 어떤것 들이 있는지 알...
Kotlin으로 Spring Data JPA를 사용할 때 많은 고민을 하였다. Entity Class를 정의할 때 특히 그런데, Data Class를 사용할지 말지, val를 사용할지 var를 사용할지 말지 등등 항상 어떻게 하는게 좀더 의미있는지 고민이 된다. 이 글은 그중에서 ...
JPA에서 동작하는 Isolation 레벨에 대해서 알아보자.
개발자로서 팀 단위로 서비스 개발을 위한 코드를 작성할 때 유지보수성을 높이기 위해 일관된 코드 작성, 의존성 방향 제약 등을 위한 팀 내 코드 컨벤션을 작성하거나 본 경험이 있을 것이다. 보통 README.md나 사내 문서에 코딩 컨벤션을 작성해서 개발자들이 숙지하도록 하거나 L...
Test의 중요성이 부각되면서 요즘 개발을 할때 테스트 코드를 많이 작성한다. 어쩌면 오퍼레이션 코드보다 테스트 코드가 프로젝트에서 더 많이 작성되기도 할지 모르겠다. 테스트 코드는 오퍼레이션 코드 못지 않게 아니 어쩌면 더 높은 가독성을 목표로 작성되어야 한다. JVM환경에서 자...
오래전 처음 회사에서 개발자로 일을 하고 있을때 이 책을 읽었던것 같다. 당시에는 애자일 방법론이 무엇인지도 TDD와 페어 프로그래밍을 어떻게 해야하는지도 모르고 기능을 만들어내기에 바빳던 시절이라 책에서 말하는 것들을 읽고 느끼는 바가 없었던 것 같다. 그러니 지금 다시 읽으니 ...
현재 재직중인 회사에서 개발된 모놀리식 서비스를 마이크로 서비스로 전환을 목표로 서비스를 하나하나 분리하고 있다. 내가 속한 팀도 현재 개발되어 있는 모놀리식 서버를 마이크로 서비스로 전환해야 한다. 아쉽게도 나는 마이크로 서비스를 개발하거나 운영해본 경험이 없다. 그래서 마이크로...
이 글은 내가 회사에서 대사 기능을 리펙토링하면서 배운것들을 동료들에게 공유하기 위해 정리했던 내용을 옮긴 글이다. 피쳐를 쳐내기 바쁘다는 핑계로 대대적인 리펙토링을 할 기회가 많지 않았는데 이번 리펙토링을 하면서 크게 스프링의 빈을 정의하고 어떻게 주입하는 지에 대해 좀더 배울 ...
이 글은 내가 회사에서 SKU 기능을 개발하면서 고민했던 내용들을 동료들에게 공유하면서 정리했던 내용을 옮긴 글이다. 기능 개발을 맡게 되면서 평소 해보고 싶었던 것들을 도입해 보았고 그것을 해보면서 많은 것들을 배우고 느낄 수 있었다. 아직 갈길이 멀지만 개인적으로는 좋은 경험이...
최근 들어 TDD, 클린 코드, 클린 아키텍처, MSA, 디자인 패턴, 애자일 방법론 등 다양한 개발 방법론에 대한 논쟁을 접하면서 느낀 바가 있어 오랜만에 내 생각에 대한 글을 적어본다. 이러한 논쟁에서 어떤 견해가 옳고 그르다고 말하기는 어렵다. 따라서 각자의 기준을 가지고 개...
여러분 팀의 애자일은 안녕하신가요? 다소 자극적으로 들릴수도 있겠지만 길지않은 기간동안(스타트업에서 하루는 다른 일반 회사의 일주일과 같…쿨럭) 애자일 방법을 도입한 스타트업을 다니면서 애자일 방법으로 소프트웨어를 개발하는 방법에 대해 느꼈던 나의 생각을 한마디로 표현한 문장이다....
이 글은 회사에서 재고 관리 서비스의 재고 이력관리 기능을 개발하면서 일급 컬렉션을 사용하게 되었는데, 일급 컬렉션을 어떻게 활용하였는지 소개하는 글이다.
객체지향언어로 개발을 하다보면 우리는 수많은 클래스를 생성하고 그 클래스를 사용한다. 도메인 주도 설계 책을 읽으면서 우리 만드는 클래스들이 어떤 책임을 가지냐에 따라서 역할을 나눌 수 있다는 것을 배우게 되었고 그중에서 이 글에서는 Entity와 Value Object에 대해서 ...
이 글은 회사에서 재고 관리 서비스의 재고 이력관리 기능을 개발하면서 일급 컬렉션을 사용하게 되었는데, 일급 컬렉션을 어떻게 활용하였는지 소개하는 글이다.
객체지향언어로 개발을 하다보면 우리는 수많은 클래스를 생성하고 그 클래스를 사용한다. 도메인 주도 설계 책을 읽으면서 우리 만드는 클래스들이 어떤 책임을 가지냐에 따라서 역할을 나눌 수 있다는 것을 배우게 되었고 그중에서 이 글에서는 Entity와 Value Object에 대해서 ...
이 글은 회사에서 재고 관리 서비스의 재고 이력관리 기능을 개발하면서 일급 컬렉션을 사용하게 되었는데, 일급 컬렉션을 어떻게 활용하였는지 소개하는 글이다.
객체지향언어로 개발을 하다보면 우리는 수많은 클래스를 생성하고 그 클래스를 사용한다. 도메인 주도 설계 책을 읽으면서 우리 만드는 클래스들이 어떤 책임을 가지냐에 따라서 역할을 나눌 수 있다는 것을 배우게 되었고 그중에서 이 글에서는 Entity와 Value Object에 대해서 ...
요즘 개발자에게 테스트의 작성은 어찌보면 당연해 졌다. 많은 회사들이 테스트 작성 역량을 필요로 해서 테스트를 작성하는 것이 당연해 졌는지, 테스트를 작성하지 않아서 겪었던 안좋은 경험들이 쌓여서 테스트를 작성하게 되었는지, 다들 테스트를 작성해야한다고 말하니까 자신도 함께 작성해...
이 글은 테스트 검증에 대한 코드를 리뷰하면서 느꼈던 나의 생각을 정리한 글이다. 옳고 그름, 맞고 틀리고를 떠나 온전히 나의 생각을 정리하고 이런 고민을 했던 것을 기록하기 위함이니 혹시 다른 의견이 있다면 댓글로 적어주시면 좋은 토의를 해볼 수 있을 것 같다.
요즘 개발자에게 테스트의 작성은 어찌보면 당연해 졌다. 많은 회사들이 테스트 작성 역량을 필요로 해서 테스트를 작성하는 것이 당연해 졌는지, 테스트를 작성하지 않아서 겪었던 안좋은 경험들이 쌓여서 테스트를 작성하게 되었는지, 다들 테스트를 작성해야한다고 말하니까 자신도 함께 작성해...
이 글은 테스트 검증에 대한 코드를 리뷰하면서 느꼈던 나의 생각을 정리한 글이다. 옳고 그름, 맞고 틀리고를 떠나 온전히 나의 생각을 정리하고 이런 고민을 했던 것을 기록하기 위함이니 혹시 다른 의견이 있다면 댓글로 적어주시면 좋은 토의를 해볼 수 있을 것 같다.
이 글은 사내 블로그에 작성한 우당탕탕 주문서 개발기 내용을 그대로 가져오면서 나의 블로그의 언어톤에 맞게 변경한 글이다. 최근 도도 카트 팀에서는 정비기간을 마친 후 처음으로 제품 개발을 위한 프로젝트를 성황리에(?) 마쳤다. 약 7주간 진행했던 이 프로젝트는 도도 카트가 제공하...
최근 Kotlin을 이용하여 개발하면서 테스트 코드를 작성할때 Kotest를 주로 사용한다. 이전에 작성한 Comparing Testing Library for Kotlin을 보면 Kotest를 이용한 테스트 코드 작성의 장점에 대해서 적어 두었으니 읽어보면 좋을 것 같다. 이 글...
모두가 노력해 준 덕분에 올해 목표로 했던 기능 테스트로의 전환을 마무리할 수 있게 되었다. 그래서 그동안 우리가 통합 테스트에서 기능테스트로 왜 전환하게 되었는지, 전환하면서 어떤 이슈들을 겪었는지 소개해보고자 한다.
최근 Kotlin을 이용하여 개발하면서 테스트 코드를 작성할때 Kotest를 주로 사용한다. 이전에 작성한 Comparing Testing Library for Kotlin을 보면 Kotest를 이용한 테스트 코드 작성의 장점에 대해서 적어 두었으니 읽어보면 좋을 것 같다. 이 글...
회사에서 Elasticsearch를 이용해 만들어진 기존 기능을 Spring Data Elasticsearch로 다시 구현하는 작업을 진행중이다. Elasticsearch도 RDB와 같이 Embedded 환경을 구성할 수 있지만 더이상 관리되지 않고 TestContainers를 사...
자동화된 배포는 어쩌면 현재 시점에서는 당연하게 받아 들이는 행위라 생각된다. 손으로 하는(자동화되지 않은) 배포는 실수를 유발할 위험성을 가지고 있으며 자동화된 배포에 비해 느리고 번거롭다. 이러한 장점으로 인해 많은 회사들이 자동화된 배포 파이프라인을 가지고 있으며 Jenkin...
이 글은 사내 블로그에 작성한 언어 전환 이야기 내용을 그대로 가져오면서 나의 블로그의 언어톤에 맞게 변경한 글이다. 최근 스포카는 서울 본사 사무실 이전과 함께 도도 포인트 서비스양도 등 많은 변화의 시간을 가졌었다. 내가 몸담은 도도 카트 팀도 앞으로 더 나은 서비스를 제공하기...
사내에서 Spring Security를 이용한 JWT인증을 구현하면서 UsernamePasswordAuthenticationFilter와 같이 이미 구현되어있는 인증 구현체가 없어서 JWT를 이용한 인증 필터를 새롭게 구현하게 되었다. Session 기반 인증만 구현하면서 기존 구...
이 글은 사내 블로그에 작성한 언어 전환 이야기 내용을 그대로 가져오면서 나의 블로그의 언어톤에 맞게 변경한 글이다. 최근 스포카는 서울 본사 사무실 이전과 함께 도도 포인트 서비스양도 등 많은 변화의 시간을 가졌었다. 내가 몸담은 도도 카트 팀도 앞으로 더 나은 서비스를 제공하기...
사내에서 Spring Security를 이용한 JWT인증을 구현하면서 UsernamePasswordAuthenticationFilter와 같이 이미 구현되어있는 인증 구현체가 없어서 JWT를 이용한 인증 필터를 새롭게 구현하게 되었다. Session 기반 인증만 구현하면서 기존 구...
게시글을 작성할때 규칙을 정해두고 작성하면 일관성있는 글을 작성할 수 있을것 같아 아래에 그 규칙들을 정하고 지키고자 한다.
게시글을 작성할때 규칙을 정해두고 작성하면 일관성있는 글을 작성할 수 있을것 같아 아래에 그 규칙들을 정하고 지키고자 한다.
상속과 구성의 특징 및 장단점에 대해 알아본다.
상속과 구성의 특징 및 장단점에 대해 알아본다.
상속과 구성의 특징 및 장단점에 대해 알아본다.
회사 동료분께서 본인이 읽었던 책 중에서 잘 읽히는 책으로 손으로 꼽을 수 있다며 추천해 주신 책이다. 정말로 책을 느리게 읽는 내가 읽어도 3~4시간 안에 읽을 수 있었다. 이 책은 총 5장으로 나뉘어져 있으며 총 36가지의 부자들이 하지 않는 행동들에 대해 말해주고 있다. 36...
회사 동료분께서 본인이 읽었던 책 중에서 잘 읽히는 책으로 손으로 꼽을 수 있다며 추천해 주신 책이다. 정말로 책을 느리게 읽는 내가 읽어도 3~4시간 안에 읽을 수 있었다. 이 책은 총 5장으로 나뉘어져 있으며 총 36가지의 부자들이 하지 않는 행동들에 대해 말해주고 있다. 36...
회사 동료분께서 본인이 읽었던 책 중에서 잘 읽히는 책으로 손으로 꼽을 수 있다며 추천해 주신 책이다. 정말로 책을 느리게 읽는 내가 읽어도 3~4시간 안에 읽을 수 있었다. 이 책은 총 5장으로 나뉘어져 있으며 총 36가지의 부자들이 하지 않는 행동들에 대해 말해주고 있다. 36...
회사 동료분께서 본인이 읽었던 책 중에서 잘 읽히는 책으로 손으로 꼽을 수 있다며 추천해 주신 책이다. 정말로 책을 느리게 읽는 내가 읽어도 3~4시간 안에 읽을 수 있었다. 이 책은 총 5장으로 나뉘어져 있으며 총 36가지의 부자들이 하지 않는 행동들에 대해 말해주고 있다. 36...
회사 동료분께서 본인이 읽었던 책 중에서 잘 읽히는 책으로 손으로 꼽을 수 있다며 추천해 주신 책이다. 정말로 책을 느리게 읽는 내가 읽어도 3~4시간 안에 읽을 수 있었다. 이 책은 총 5장으로 나뉘어져 있으며 총 36가지의 부자들이 하지 않는 행동들에 대해 말해주고 있다. 36...
passwd 명령어 및 명령어 옵션들을 알아보자.
passwd 명령어 및 명령어 옵션들을 알아보자.
IT기술을 기반으로 성장하는 스타트업에서 개발 부서는 그 회사의 중심이라고 해도 과언이 아니다. 물론 마케팅이나 고객지원, 기획, 경영지원, 영업 등의 부서들도 회사에 없어서는 안될 중요한 부서이긴 하지만 서비스가 개발되지 않으면 그 기업이 존재할 수 없는 IT 스타트업의 특성상 ...
IT기술을 기반으로 성장하는 스타트업에서 개발 부서는 그 회사의 중심이라고 해도 과언이 아니다. 물론 마케팅이나 고객지원, 기획, 경영지원, 영업 등의 부서들도 회사에 없어서는 안될 중요한 부서이긴 하지만 서비스가 개발되지 않으면 그 기업이 존재할 수 없는 IT 스타트업의 특성상 ...
tunneling과 port forwarding에 대해 알아보자.
tunneling과 port forwarding에 대해 알아보자.
GIT 사용시 발생할 수 있는 코드 충돌 해결 방법을 알아본다.
GIT 사용시 발생할 수 있는 코드 충돌 해결 방법을 알아본다.
Kotlin에서 제공하는 함수들 중에 let, run, with, apply, also라는 함수들에 대해서 알아보자.
Kotlin에서 제공하는 함수들 중에 let, run, with, apply, also라는 함수들에 대해서 알아보자.
Kotlin에서 제공하는 함수들 중에 let, run, with, apply, also라는 함수들에 대해서 알아보자.
Kotlin에서 제공하는 함수들 중에 let, run, with, apply, also라는 함수들에 대해서 알아보자.
Kotlin에서 제공하는 함수들 중에 let, run, with, apply, also라는 함수들에 대해서 알아보자.
Kotlin에서 제공하는 함수들 중에 let, run, with, apply, also라는 함수들에 대해서 알아보자.
Kotlin에서 2개 이상의 배열을 합쳐 하나의 배열로 반환해야하는 기능을 구현하는 상황에서 union함수를 사용할지 flatten함수를 사용할지 고민을 한적이 있다. 당시에는 flatten을 사용하였지만 (union을 사용할 경우 반환 형식이 Set이기 때문에 다시 toList함...
Kotlin에서 2개 이상의 배열을 합쳐 하나의 배열로 반환해야하는 기능을 구현하는 상황에서 union함수를 사용할지 flatten함수를 사용할지 고민을 한적이 있다. 당시에는 flatten을 사용하였지만 (union을 사용할 경우 반환 형식이 Set이기 때문에 다시 toList함...
디자인 패턴을 좀더 깊게 공부해볼 필요성을 느껴서 처음에 GoF의 디자인 패턴을 사서 보려고 하였는데, 회사 동료가 먼어 읽어보라고 준 책이 Head First Design Patterns이다.
디자인 패턴을 좀더 깊게 공부해볼 필요성을 느껴서 처음에 GoF의 디자인 패턴을 사서 보려고 하였는데, 회사 동료가 먼어 읽어보라고 준 책이 Head First Design Patterns이다.
디자인 패턴을 좀더 깊게 공부해볼 필요성을 느껴서 처음에 GoF의 디자인 패턴을 사서 보려고 하였는데, 회사 동료가 먼어 읽어보라고 준 책이 Head First Design Patterns이다.
디자인 패턴을 좀더 깊게 공부해볼 필요성을 느껴서 처음에 GoF의 디자인 패턴을 사서 보려고 하였는데, 회사 동료가 먼어 읽어보라고 준 책이 Head First Design Patterns이다.
디자인 패턴을 좀더 깊게 공부해볼 필요성을 느껴서 처음에 GoF의 디자인 패턴을 사서 보려고 하였는데, 회사 동료가 먼어 읽어보라고 준 책이 Head First Design Patterns이다.
디자인 패턴을 좀더 깊게 공부해볼 필요성을 느껴서 처음에 GoF의 디자인 패턴을 사서 보려고 하였는데, 회사 동료가 먼어 읽어보라고 준 책이 Head First Design Patterns이다.
디자인 패턴을 좀더 깊게 공부해볼 필요성을 느껴서 처음에 GoF의 디자인 패턴을 사서 보려고 하였는데, 회사 동료가 먼어 읽어보라고 준 책이 Head First Design Patterns이다.
이 글은 현재 개인프로젝트로 개발하고 있는 OCCUPYING Repository에 GIT Actions을 이용하여 CI/CD를 적용해 보면서 겪었던 것들을 적은 글이다.
이 글은 현재 개인프로젝트로 개발하고 있는 OCCUPYING Repository에 GIT Actions을 이용하여 CI/CD를 적용해 보면서 겪었던 것들을 적은 글이다.
그래프 데이터베이스를 공부하고 싶어서 사내에서 스터디를 하였다. 스터디할 때 같이 보기로 한 책이 Neo4j로 시작하는 그래프 데이터베이스이다. 스터디에서 이 책을 선택한 이유는 그래프 데이터베이스를 이용해서 어떻게 데이터를 다룰 수 있는지 사례를 볼 수 있을 것 같아서였다. 책의...
그래프 데이터베이스를 공부하고 싶어서 사내에서 스터디를 하였다. 스터디할 때 같이 보기로 한 책이 Neo4j로 시작하는 그래프 데이터베이스이다. 스터디에서 이 책을 선택한 이유는 그래프 데이터베이스를 이용해서 어떻게 데이터를 다룰 수 있는지 사례를 볼 수 있을 것 같아서였다. 책의...
그래프 데이터베이스를 공부하고 싶어서 사내에서 스터디를 하였다. 스터디할 때 같이 보기로 한 책이 Neo4j로 시작하는 그래프 데이터베이스이다. 스터디에서 이 책을 선택한 이유는 그래프 데이터베이스를 이용해서 어떻게 데이터를 다룰 수 있는지 사례를 볼 수 있을 것 같아서였다. 책의...
그래프 데이터베이스를 공부하고 싶어서 사내에서 스터디를 하였다. 스터디할 때 같이 보기로 한 책이 Neo4j로 시작하는 그래프 데이터베이스이다. 스터디에서 이 책을 선택한 이유는 그래프 데이터베이스를 이용해서 어떻게 데이터를 다룰 수 있는지 사례를 볼 수 있을 것 같아서였다. 책의...
그래프 데이터베이스를 공부하고 싶어서 사내에서 스터디를 하였다. 스터디할 때 같이 보기로 한 책이 Neo4j로 시작하는 그래프 데이터베이스이다. 스터디에서 이 책을 선택한 이유는 그래프 데이터베이스를 이용해서 어떻게 데이터를 다룰 수 있는지 사례를 볼 수 있을 것 같아서였다. 책의...
그래프 데이터베이스를 공부하고 싶어서 사내에서 스터디를 하였다. 스터디할 때 같이 보기로 한 책이 Neo4j로 시작하는 그래프 데이터베이스이다. 스터디에서 이 책을 선택한 이유는 그래프 데이터베이스를 이용해서 어떻게 데이터를 다룰 수 있는지 사례를 볼 수 있을 것 같아서였다. 책의...
그래프 데이터베이스를 공부하고 싶어서 사내에서 스터디를 하였다. 스터디할 때 같이 보기로 한 책이 Neo4j로 시작하는 그래프 데이터베이스이다. 스터디에서 이 책을 선택한 이유는 그래프 데이터베이스를 이용해서 어떻게 데이터를 다룰 수 있는지 사례를 볼 수 있을 것 같아서였다. 책의...
그래프 데이터베이스를 공부하고 싶어서 사내에서 스터디를 하였다. 스터디할 때 같이 보기로 한 책이 Neo4j로 시작하는 그래프 데이터베이스이다. 스터디에서 이 책을 선택한 이유는 그래프 데이터베이스를 이용해서 어떻게 데이터를 다룰 수 있는지 사례를 볼 수 있을 것 같아서였다. 책의...
지난 GIT Actions을 이용한 CI/CD 적용기 - CI편에 이어 이번 글은 CD에 대한 내용을 적어보겠다. CD가 Trigger 되는 시점은 master 브런치에 병합이 될때 실행되며, OCCUPYING프로젝트에서 CD는 Continuous Delivery가 아닌 Conti...
지난 GIT Actions을 이용한 CI/CD 적용기 - CI편에 이어 이번 글은 CD에 대한 내용을 적어보겠다. CD가 Trigger 되는 시점은 master 브런치에 병합이 될때 실행되며, OCCUPYING프로젝트에서 CD는 Continuous Delivery가 아닌 Conti...
회사에서 동료들과 설문조사에서 설문 문항에 따라 사람들의 설문에 대한 답변이 달라지는 현상에 대한 얘기를 한적이 있다. 동료는 이러한 현상을 넛지라고 하였고 넛지라는 책을 추천해 주었다. 나도 TV에서 들어봤던 책이기도 하고 이런 사회적 현상을 책으로 어떻게 풀어썼는지 궁금하기도 ...
회사에서 동료들과 설문조사에서 설문 문항에 따라 사람들의 설문에 대한 답변이 달라지는 현상에 대한 얘기를 한적이 있다. 동료는 이러한 현상을 넛지라고 하였고 넛지라는 책을 추천해 주었다. 나도 TV에서 들어봤던 책이기도 하고 이런 사회적 현상을 책으로 어떻게 풀어썼는지 궁금하기도 ...
회사에서 동료들과 설문조사에서 설문 문항에 따라 사람들의 설문에 대한 답변이 달라지는 현상에 대한 얘기를 한적이 있다. 동료는 이러한 현상을 넛지라고 하였고 넛지라는 책을 추천해 주었다. 나도 TV에서 들어봤던 책이기도 하고 이런 사회적 현상을 책으로 어떻게 풀어썼는지 궁금하기도 ...
회사에서 동료들과 설문조사에서 설문 문항에 따라 사람들의 설문에 대한 답변이 달라지는 현상에 대한 얘기를 한적이 있다. 동료는 이러한 현상을 넛지라고 하였고 넛지라는 책을 추천해 주었다. 나도 TV에서 들어봤던 책이기도 하고 이런 사회적 현상을 책으로 어떻게 풀어썼는지 궁금하기도 ...
Spring WebFlux에 대해서는 작년에 처음 내용을 접하고 나서 관심이 생겨서 개인 프로젝트로 만들어보기도 하면서 조금씩 익혀가고 있다. 현재는 공식 래퍼런스를 번역해가면서 내용을 제대로 익히기 위해 공부하고 있다. Spring WebFlux가 어떠한 컨셉을 가지고 기능을 제...
Spring WebFlux에 대해서는 작년에 처음 내용을 접하고 나서 관심이 생겨서 개인 프로젝트로 만들어보기도 하면서 조금씩 익혀가고 있다. 현재는 공식 래퍼런스를 번역해가면서 내용을 제대로 익히기 위해 공부하고 있다. Spring WebFlux가 어떠한 컨셉을 가지고 기능을 제...
이번 글에서는 이전에 작성한 Spring WebFlux - Spring Data R2DBC tutorial에 이어 Spring WebFlux를 이용한 API를 만들어보는 글을 작성해 보겠다. Spring WebFlux에서는 Web API를 위한 2가지 방식의 프로그래밍 모델을 제공...
이번 글에서는 이전에 작성한 Spring WebFlux - Spring Data R2DBC tutorial에 이어 Spring WebFlux를 이용한 API를 만들어보는 글을 작성해 보겠다. Spring WebFlux에서는 Web API를 위한 2가지 방식의 프로그래밍 모델을 제공...
이번 글에서는 이전에 작성한 Spring WebFlux - Functional Endpoint With Coroutine Tutorial에 이어 Spring WebFlux를 이용한 또다른 방식의 API를 만들어보는 글을 작성해 보겠다. 이전 글에서는 함수형 앤드포인트방식을 이용하여...
이번 글에서는 이전에 작성한 Spring WebFlux - Functional Endpoint With Coroutine Tutorial에 이어 Spring WebFlux를 이용한 또다른 방식의 API를 만들어보는 글을 작성해 보겠다. 이전 글에서는 함수형 앤드포인트방식을 이용하여...
개발자라면 누구나 알고 있는 그 책 Clean Architecture를 드디어 읽어 보았다. 이전에 Clean Code를 읽고 Clean Architecture도 꼭 읽어봐야지 했었는데, 이제서야 이 책을 읽게 되었다. 이 글을 통해 내가 이 책을 읽고 생각 나는 키워드 들과 소감...
개발자라면 누구나 알고 있는 그 책 Clean Architecture를 드디어 읽어 보았다. 이전에 Clean Code를 읽고 Clean Architecture도 꼭 읽어봐야지 했었는데, 이제서야 이 책을 읽게 되었다. 이 글을 통해 내가 이 책을 읽고 생각 나는 키워드 들과 소감...
이전 글에서 RDBMS를 Spring WebFlux에서 사용하기 위해 Spring Data R2DBC 튜토리얼을 작성했었다. 이번 글에서는 Spring WebFlux에서 NoSQL중 하나인 MongoDB를 사용하기 위한 튜토리얼을 작성해 보고자 한다.
Swap Memory에 대해 알아보자.
Swap Memory에 대해 알아보자.
얼마전에 Blocking과 Non-Blocking에 대해 설명을 해야 할 일이 있었는데, 설명을 Synchronous와 Asynchronous에 대해서 설명한 일이 있었다. 현재 내가 개발을 하면서 많은 곳에서 사용하고 있지만 제대로 알고 사용하고 있지 않다는 것을 알게 되었고, ...
얼마전에 Blocking과 Non-Blocking에 대해 설명을 해야 할 일이 있었는데, 설명을 Synchronous와 Asynchronous에 대해서 설명한 일이 있었다. 현재 내가 개발을 하면서 많은 곳에서 사용하고 있지만 제대로 알고 사용하고 있지 않다는 것을 알게 되었고, ...
얼마전에 Blocking과 Non-Blocking에 대해 설명을 해야 할 일이 있었는데, 설명을 Synchronous와 Asynchronous에 대해서 설명한 일이 있었다. 현재 내가 개발을 하면서 많은 곳에서 사용하고 있지만 제대로 알고 사용하고 있지 않다는 것을 알게 되었고, ...
얼마전에 Blocking과 Non-Blocking에 대해 설명을 해야 할 일이 있었는데, 설명을 Synchronous와 Asynchronous에 대해서 설명한 일이 있었다. 현재 내가 개발을 하면서 많은 곳에서 사용하고 있지만 제대로 알고 사용하고 있지 않다는 것을 알게 되었고, ...
얼마전에 Blocking과 Non-Blocking에 대해 설명을 해야 할 일이 있었는데, 설명을 Synchronous와 Asynchronous에 대해서 설명한 일이 있었다. 현재 내가 개발을 하면서 많은 곳에서 사용하고 있지만 제대로 알고 사용하고 있지 않다는 것을 알게 되었고, ...
얼마전에 Blocking과 Non-Blocking에 대해 설명을 해야 할 일이 있었는데, 설명을 Synchronous와 Asynchronous에 대해서 설명한 일이 있었다. 현재 내가 개발을 하면서 많은 곳에서 사용하고 있지만 제대로 알고 사용하고 있지 않다는 것을 알게 되었고, ...
빈을 정의할때, 스프링에서는 사용자가 생성한 빈을 어떠한 종속성을 가지도록 하거나 생성되는 객체의 범위를 지정하는 등을 제어할 수 있는 기능을 제공해준다. 이 글에서는 스프링에서 설정할 수 있는 Scope가 어떤 것들이 있으며 각 Scope 별 수행하는 역할에 대해서 적어보고자 한다.
빈을 정의할때, 스프링에서는 사용자가 생성한 빈을 어떠한 종속성을 가지도록 하거나 생성되는 객체의 범위를 지정하는 등을 제어할 수 있는 기능을 제공해준다. 이 글에서는 스프링에서 설정할 수 있는 Scope가 어떤 것들이 있으며 각 Scope 별 수행하는 역할에 대해서 적어보고자 한다.
빈을 정의할때, 스프링에서는 사용자가 생성한 빈을 어떠한 종속성을 가지도록 하거나 생성되는 객체의 범위를 지정하는 등을 제어할 수 있는 기능을 제공해준다. 이 글에서는 스프링에서 설정할 수 있는 Scope가 어떤 것들이 있으며 각 Scope 별 수행하는 역할에 대해서 적어보고자 한다.
빈을 정의할때, 스프링에서는 사용자가 생성한 빈을 어떠한 종속성을 가지도록 하거나 생성되는 객체의 범위를 지정하는 등을 제어할 수 있는 기능을 제공해준다. 이 글에서는 스프링에서 설정할 수 있는 Scope가 어떤 것들이 있으며 각 Scope 별 수행하는 역할에 대해서 적어보고자 한다.
빈을 정의할때, 스프링에서는 사용자가 생성한 빈을 어떠한 종속성을 가지도록 하거나 생성되는 객체의 범위를 지정하는 등을 제어할 수 있는 기능을 제공해준다. 이 글에서는 스프링에서 설정할 수 있는 Scope가 어떤 것들이 있으며 각 Scope 별 수행하는 역할에 대해서 적어보고자 한다.
빈을 정의할때, 스프링에서는 사용자가 생성한 빈을 어떠한 종속성을 가지도록 하거나 생성되는 객체의 범위를 지정하는 등을 제어할 수 있는 기능을 제공해준다. 이 글에서는 스프링에서 설정할 수 있는 Scope가 어떤 것들이 있으며 각 Scope 별 수행하는 역할에 대해서 적어보고자 한다.
빈을 정의할때, 스프링에서는 사용자가 생성한 빈을 어떠한 종속성을 가지도록 하거나 생성되는 객체의 범위를 지정하는 등을 제어할 수 있는 기능을 제공해준다. 이 글에서는 스프링에서 설정할 수 있는 Scope가 어떤 것들이 있으며 각 Scope 별 수행하는 역할에 대해서 적어보고자 한다.
회사에서 친한 동료 기획자분께서 내가 블로그를 작성중이라고 말씀드리니 추천해 주신 책이 디지털 노마드이다. 동료의 지인분께서는 이 책에서 말하는 디지털 노마드의 삶을 살고 계시고 직장 다닐 때 보다 큰 수익을 얻으면서 생활하고 계신다고 나도 이 책을 읽고 디지털 노마드의 삶을 살아...
회사에서 친한 동료 기획자분께서 내가 블로그를 작성중이라고 말씀드리니 추천해 주신 책이 디지털 노마드이다. 동료의 지인분께서는 이 책에서 말하는 디지털 노마드의 삶을 살고 계시고 직장 다닐 때 보다 큰 수익을 얻으면서 생활하고 계신다고 나도 이 책을 읽고 디지털 노마드의 삶을 살아...
회사에서 친한 동료 기획자분께서 내가 블로그를 작성중이라고 말씀드리니 추천해 주신 책이 디지털 노마드이다. 동료의 지인분께서는 이 책에서 말하는 디지털 노마드의 삶을 살고 계시고 직장 다닐 때 보다 큰 수익을 얻으면서 생활하고 계신다고 나도 이 책을 읽고 디지털 노마드의 삶을 살아...
회사에서 친한 동료 기획자분께서 내가 블로그를 작성중이라고 말씀드리니 추천해 주신 책이 디지털 노마드이다. 동료의 지인분께서는 이 책에서 말하는 디지털 노마드의 삶을 살고 계시고 직장 다닐 때 보다 큰 수익을 얻으면서 생활하고 계신다고 나도 이 책을 읽고 디지털 노마드의 삶을 살아...
사내 예약 시스템을 만들면서 서버간의 데이터 교환에 Message Queue를 사용하기로 결정하였다. Message Queue 기능을 제공하는 다양한 솔루션이 있는데 이중에서 어떤 것을 사용하면 좋을 지 알아보면서 Message Queue란 어떤것이며 종류가 어떤것 들이 있는지 알...
사내 예약 시스템을 만들면서 서버간의 데이터 교환에 Message Queue를 사용하기로 결정하였다. Message Queue 기능을 제공하는 다양한 솔루션이 있는데 이중에서 어떤 것을 사용하면 좋을 지 알아보면서 Message Queue란 어떤것이며 종류가 어떤것 들이 있는지 알...
1년 가까이 TDD를 연습하면서 이제서야 이 책을 읽어보았다. 사실 이 책을 읽은지는 한달정도 되었는데 리뷰를 적을지 말지 고민을 많이 하였다. 왜냐하면 내가 이책을 잘 읽었다고 생각이 들지 않았고 내용을 잘 이해하지 못했다고 생각이 들어서 이다. 아무래도 한번더 읽어봐야할 것 같...
1년 가까이 TDD를 연습하면서 이제서야 이 책을 읽어보았다. 사실 이 책을 읽은지는 한달정도 되었는데 리뷰를 적을지 말지 고민을 많이 하였다. 왜냐하면 내가 이책을 잘 읽었다고 생각이 들지 않았고 내용을 잘 이해하지 못했다고 생각이 들어서 이다. 아무래도 한번더 읽어봐야할 것 같...
1년 가까이 TDD를 연습하면서 이제서야 이 책을 읽어보았다. 사실 이 책을 읽은지는 한달정도 되었는데 리뷰를 적을지 말지 고민을 많이 하였다. 왜냐하면 내가 이책을 잘 읽었다고 생각이 들지 않았고 내용을 잘 이해하지 못했다고 생각이 들어서 이다. 아무래도 한번더 읽어봐야할 것 같...
1년 가까이 TDD를 연습하면서 이제서야 이 책을 읽어보았다. 사실 이 책을 읽은지는 한달정도 되었는데 리뷰를 적을지 말지 고민을 많이 하였다. 왜냐하면 내가 이책을 잘 읽었다고 생각이 들지 않았고 내용을 잘 이해하지 못했다고 생각이 들어서 이다. 아무래도 한번더 읽어봐야할 것 같...
이번 글에서는 Active MQ를 시나리별로 사용하는 방법에 대해서 작성해 보고자 한다.
이번 글에서는 Active MQ를 시나리별로 사용하는 방법에 대해서 작성해 보고자 한다.
이번 글에서는 Active MQ를 시나리별로 사용하는 방법에 대해서 작성해 보고자 한다.
이번 글에서는 Active MQ를 시나리별로 사용하는 방법에 대해서 작성해 보고자 한다.
이번 글에서는 Active MQ를 시나리별로 사용하는 방법에 대해서 작성해 보고자 한다.
이번 글에서는 Active MQ를 시나리별로 사용하는 방법에 대해서 작성해 보고자 한다.
이번 글에서는 Active MQ를 시나리별로 사용하는 방법에 대해서 작성해 보고자 한다.
이번 글에서는 Active MQ를 시나리별로 사용하는 방법에 대해서 작성해 보고자 한다.
이번 글에서는 Active MQ를 시나리별로 사용하는 방법에 대해서 작성해 보고자 한다.
JPA에서 동작하는 Isolation 레벨에 대해서 알아보자.
Test의 중요성이 부각되면서 요즘 개발을 할때 테스트 코드를 많이 작성한다. 어쩌면 오퍼레이션 코드보다 테스트 코드가 프로젝트에서 더 많이 작성되기도 할지 모르겠다. 테스트 코드는 오퍼레이션 코드 못지 않게 아니 어쩌면 더 높은 가독성을 목표로 작성되어야 한다. JVM환경에서 자...
Test의 중요성이 부각되면서 요즘 개발을 할때 테스트 코드를 많이 작성한다. 어쩌면 오퍼레이션 코드보다 테스트 코드가 프로젝트에서 더 많이 작성되기도 할지 모르겠다. 테스트 코드는 오퍼레이션 코드 못지 않게 아니 어쩌면 더 높은 가독성을 목표로 작성되어야 한다. JVM환경에서 자...
Test의 중요성이 부각되면서 요즘 개발을 할때 테스트 코드를 많이 작성한다. 어쩌면 오퍼레이션 코드보다 테스트 코드가 프로젝트에서 더 많이 작성되기도 할지 모르겠다. 테스트 코드는 오퍼레이션 코드 못지 않게 아니 어쩌면 더 높은 가독성을 목표로 작성되어야 한다. JVM환경에서 자...
Test의 중요성이 부각되면서 요즘 개발을 할때 테스트 코드를 많이 작성한다. 어쩌면 오퍼레이션 코드보다 테스트 코드가 프로젝트에서 더 많이 작성되기도 할지 모르겠다. 테스트 코드는 오퍼레이션 코드 못지 않게 아니 어쩌면 더 높은 가독성을 목표로 작성되어야 한다. JVM환경에서 자...
현재 재직중인 회사에서 개발된 모놀리식 서비스를 마이크로 서비스로 전환을 목표로 서비스를 하나하나 분리하고 있다. 내가 속한 팀도 현재 개발되어 있는 모놀리식 서버를 마이크로 서비스로 전환해야 한다. 아쉽게도 나는 마이크로 서비스를 개발하거나 운영해본 경험이 없다. 그래서 마이크로...
현재 재직중인 회사에서 개발된 모놀리식 서비스를 마이크로 서비스로 전환을 목표로 서비스를 하나하나 분리하고 있다. 내가 속한 팀도 현재 개발되어 있는 모놀리식 서버를 마이크로 서비스로 전환해야 한다. 아쉽게도 나는 마이크로 서비스를 개발하거나 운영해본 경험이 없다. 그래서 마이크로...
현재 재직중인 회사에서 개발된 모놀리식 서비스를 마이크로 서비스로 전환을 목표로 서비스를 하나하나 분리하고 있다. 내가 속한 팀도 현재 개발되어 있는 모놀리식 서버를 마이크로 서비스로 전환해야 한다. 아쉽게도 나는 마이크로 서비스를 개발하거나 운영해본 경험이 없다. 그래서 마이크로...
Kotlin으로 Spring Data JPA를 사용할 때 많은 고민을 하였다. Entity Class를 정의할 때 특히 그런데, Data Class를 사용할지 말지, val를 사용할지 var를 사용할지 말지 등등 항상 어떻게 하는게 좀더 의미있는지 고민이 된다. 이 글은 그중에서 ...
테스트코드를 작성하다보면 테스트 데이터를 필수적으로 수없이 생성해야 한다. 테스트 데이터를 생성하는 작업은 상당히 번거롭고 지루한 작업이다. 하지만 테스트 데이터를 어떻게 잘 작성하느냐에 따라서 테스트 코드의 가독성이 좋아지기도 나빠지기도 하며 중복되는 코드로 인해 테스트 코드의 ...
테스트코드를 작성하다보면 테스트 데이터를 필수적으로 수없이 생성해야 한다. 테스트 데이터를 생성하는 작업은 상당히 번거롭고 지루한 작업이다. 하지만 테스트 데이터를 어떻게 잘 작성하느냐에 따라서 테스트 코드의 가독성이 좋아지기도 나빠지기도 하며 중복되는 코드로 인해 테스트 코드의 ...
이 책은 지금은 계시진 않지만 회사의 동료분께서 추천해주셔서 알게된 책이다. 목차를 읽어보았는데, 기초라고 적혀 있는 일반론적인 부분은 다른 책들에게서도 읽을 수 있는 내용이라 딱히 기대가 되진 않았지만 나머지 가이드 부분들은 평소 내가 코드를 작성할 때 고민하던 부분들을 코드로 ...
이 책은 지금은 계시진 않지만 회사의 동료분께서 추천해주셔서 알게된 책이다. 목차를 읽어보았는데, 기초라고 적혀 있는 일반론적인 부분은 다른 책들에게서도 읽을 수 있는 내용이라 딱히 기대가 되진 않았지만 나머지 가이드 부분들은 평소 내가 코드를 작성할 때 고민하던 부분들을 코드로 ...
이 책은 지금은 계시진 않지만 회사의 동료분께서 추천해주셔서 알게된 책이다. 목차를 읽어보았는데, 기초라고 적혀 있는 일반론적인 부분은 다른 책들에게서도 읽을 수 있는 내용이라 딱히 기대가 되진 않았지만 나머지 가이드 부분들은 평소 내가 코드를 작성할 때 고민하던 부분들을 코드로 ...
이 책은 지금은 계시진 않지만 회사의 동료분께서 추천해주셔서 알게된 책이다. 목차를 읽어보았는데, 기초라고 적혀 있는 일반론적인 부분은 다른 책들에게서도 읽을 수 있는 내용이라 딱히 기대가 되진 않았지만 나머지 가이드 부분들은 평소 내가 코드를 작성할 때 고민하던 부분들을 코드로 ...
여러분 팀의 애자일은 안녕하신가요? 다소 자극적으로 들릴수도 있겠지만 길지않은 기간동안(스타트업에서 하루는 다른 일반 회사의 일주일과 같…쿨럭) 애자일 방법을 도입한 스타트업을 다니면서 애자일 방법으로 소프트웨어를 개발하는 방법에 대해 느꼈던 나의 생각을 한마디로 표현한 문장이다....
여러분 팀의 애자일은 안녕하신가요? 다소 자극적으로 들릴수도 있겠지만 길지않은 기간동안(스타트업에서 하루는 다른 일반 회사의 일주일과 같…쿨럭) 애자일 방법을 도입한 스타트업을 다니면서 애자일 방법으로 소프트웨어를 개발하는 방법에 대해 느꼈던 나의 생각을 한마디로 표현한 문장이다....
여러분 팀의 애자일은 안녕하신가요? 다소 자극적으로 들릴수도 있겠지만 길지않은 기간동안(스타트업에서 하루는 다른 일반 회사의 일주일과 같…쿨럭) 애자일 방법을 도입한 스타트업을 다니면서 애자일 방법으로 소프트웨어를 개발하는 방법에 대해 느꼈던 나의 생각을 한마디로 표현한 문장이다....
여러분 팀의 애자일은 안녕하신가요? 다소 자극적으로 들릴수도 있겠지만 길지않은 기간동안(스타트업에서 하루는 다른 일반 회사의 일주일과 같…쿨럭) 애자일 방법을 도입한 스타트업을 다니면서 애자일 방법으로 소프트웨어를 개발하는 방법에 대해 느꼈던 나의 생각을 한마디로 표현한 문장이다....
이 글은 Python 초보인 내가 SQLAlchemy를 (제대로 알지 못하고)사용하면서 겪었던 이슈에 대해 원인을 찾아보고 왜 SQLAlchemy가 그렇게 동작하게끔 구현되었는지, 앞으로 사용할 때 어떤 주의를 기울여야 하는지를 정리한 글이다.
이 글은 Python 초보인 내가 SQLAlchemy를 (제대로 알지 못하고)사용하면서 겪었던 이슈에 대해 원인을 찾아보고 왜 SQLAlchemy가 그렇게 동작하게끔 구현되었는지, 앞으로 사용할 때 어떤 주의를 기울여야 하는지를 정리한 글이다.
이 글은 코드리뷰 활동을 하면서 어떻게 하면 더 나은 코드리뷰활동을 이어갈 수 있을까 라는 생각을 정리한 글이다. 백명석님의 Code Review에 대하여라는 영상을 많이 참고하였다.
최근 Kotlin을 이용하여 개발하면서 테스트 코드를 작성할때 Kotest를 주로 사용한다. 이전에 작성한 Comparing Testing Library for Kotlin을 보면 Kotest를 이용한 테스트 코드 작성의 장점에 대해서 적어 두었으니 읽어보면 좋을 것 같다. 이 글...
현재 회사에서 Python을 주 언어로 사용하고 있다. 지금까지 나는 Java, Kotlin, Javascript 언어를 주로 사용해왔었고 Python은 코딩 튜터로 활동할때 조금 사용해 보았지만 제대로 안다고 말하기 어려웠다. 그래서 Python에 대해 좀더 깊이 있게 알아보기 ...
현재 회사에서 Python을 주 언어로 사용하고 있다. 지금까지 나는 Java, Kotlin, Javascript 언어를 주로 사용해왔었고 Python은 코딩 튜터로 활동할때 조금 사용해 보았지만 제대로 안다고 말하기 어려웠다. 그래서 Python에 대해 좀더 깊이 있게 알아보기 ...
현재 회사에서 Python을 주 언어로 사용하고 있다. 지금까지 나는 Java, Kotlin, Javascript 언어를 주로 사용해왔었고 Python은 코딩 튜터로 활동할때 조금 사용해 보았지만 제대로 안다고 말하기 어려웠다. 그래서 Python에 대해 좀더 깊이 있게 알아보기 ...
이 글은 현재 내가 몸담은 회사의 서비스에서 도메인을 정의하고 그것에 맞게 백엔드의 구조를 개선해 가는 과정을 적은 이야기이다. 도메인 주도 개발 전환 이야기라는 장황한 제목을 적긴 했지만 사실 현재 만들어져있는 도도카트의 백엔드 코드를 도메인에 맞게 재 구조화하고 리펙토링하는 과...
오래전 처음 회사에서 개발자로 일을 하고 있을때 이 책을 읽었던것 같다. 당시에는 애자일 방법론이 무엇인지도 TDD와 페어 프로그래밍을 어떻게 해야하는지도 모르고 기능을 만들어내기에 바빳던 시절이라 책에서 말하는 것들을 읽고 느끼는 바가 없었던 것 같다. 그러니 지금 다시 읽으니 ...
오래전 처음 회사에서 개발자로 일을 하고 있을때 이 책을 읽었던것 같다. 당시에는 애자일 방법론이 무엇인지도 TDD와 페어 프로그래밍을 어떻게 해야하는지도 모르고 기능을 만들어내기에 바빳던 시절이라 책에서 말하는 것들을 읽고 느끼는 바가 없었던 것 같다. 그러니 지금 다시 읽으니 ...
오래전 처음 회사에서 개발자로 일을 하고 있을때 이 책을 읽었던것 같다. 당시에는 애자일 방법론이 무엇인지도 TDD와 페어 프로그래밍을 어떻게 해야하는지도 모르고 기능을 만들어내기에 바빳던 시절이라 책에서 말하는 것들을 읽고 느끼는 바가 없었던 것 같다. 그러니 지금 다시 읽으니 ...
자동화된 배포는 어쩌면 현재 시점에서는 당연하게 받아 들이는 행위라 생각된다. 손으로 하는(자동화되지 않은) 배포는 실수를 유발할 위험성을 가지고 있으며 자동화된 배포에 비해 느리고 번거롭다. 이러한 장점으로 인해 많은 회사들이 자동화된 배포 파이프라인을 가지고 있으며 Jenkin...
자동화된 배포는 어쩌면 현재 시점에서는 당연하게 받아 들이는 행위라 생각된다. 손으로 하는(자동화되지 않은) 배포는 실수를 유발할 위험성을 가지고 있으며 자동화된 배포에 비해 느리고 번거롭다. 이러한 장점으로 인해 많은 회사들이 자동화된 배포 파이프라인을 가지고 있으며 Jenkin...
자동화된 배포는 어쩌면 현재 시점에서는 당연하게 받아 들이는 행위라 생각된다. 손으로 하는(자동화되지 않은) 배포는 실수를 유발할 위험성을 가지고 있으며 자동화된 배포에 비해 느리고 번거롭다. 이러한 장점으로 인해 많은 회사들이 자동화된 배포 파이프라인을 가지고 있으며 Jenkin...
자동화된 배포는 어쩌면 현재 시점에서는 당연하게 받아 들이는 행위라 생각된다. 손으로 하는(자동화되지 않은) 배포는 실수를 유발할 위험성을 가지고 있으며 자동화된 배포에 비해 느리고 번거롭다. 이러한 장점으로 인해 많은 회사들이 자동화된 배포 파이프라인을 가지고 있으며 Jenkin...
자동화된 배포는 어쩌면 현재 시점에서는 당연하게 받아 들이는 행위라 생각된다. 손으로 하는(자동화되지 않은) 배포는 실수를 유발할 위험성을 가지고 있으며 자동화된 배포에 비해 느리고 번거롭다. 이러한 장점으로 인해 많은 회사들이 자동화된 배포 파이프라인을 가지고 있으며 Jenkin...
자동화된 배포는 어쩌면 현재 시점에서는 당연하게 받아 들이는 행위라 생각된다. 손으로 하는(자동화되지 않은) 배포는 실수를 유발할 위험성을 가지고 있으며 자동화된 배포에 비해 느리고 번거롭다. 이러한 장점으로 인해 많은 회사들이 자동화된 배포 파이프라인을 가지고 있으며 Jenkin...
자동화된 배포는 어쩌면 현재 시점에서는 당연하게 받아 들이는 행위라 생각된다. 손으로 하는(자동화되지 않은) 배포는 실수를 유발할 위험성을 가지고 있으며 자동화된 배포에 비해 느리고 번거롭다. 이러한 장점으로 인해 많은 회사들이 자동화된 배포 파이프라인을 가지고 있으며 Jenkin...
자동화된 배포는 어쩌면 현재 시점에서는 당연하게 받아 들이는 행위라 생각된다. 손으로 하는(자동화되지 않은) 배포는 실수를 유발할 위험성을 가지고 있으며 자동화된 배포에 비해 느리고 번거롭다. 이러한 장점으로 인해 많은 회사들이 자동화된 배포 파이프라인을 가지고 있으며 Jenkin...
회사에서 Elasticsearch를 이용해 만들어진 기존 기능을 Spring Data Elasticsearch로 다시 구현하는 작업을 진행중이다. Elasticsearch도 RDB와 같이 Embedded 환경을 구성할 수 있지만 더이상 관리되지 않고 TestContainers를 사...
회사에서 Elasticsearch를 이용해 만들어진 기존 기능을 Spring Data Elasticsearch로 다시 구현하는 작업을 진행중이다. Elasticsearch도 RDB와 같이 Embedded 환경을 구성할 수 있지만 더이상 관리되지 않고 TestContainers를 사...
회사에서 Elasticsearch를 이용해 만들어진 기존 기능을 Spring Data Elasticsearch로 다시 구현하는 작업을 진행중이다. Elasticsearch도 RDB와 같이 Embedded 환경을 구성할 수 있지만 더이상 관리되지 않고 TestContainers를 사...
이 글은 현재 몸담고 있는 팀에서 제품을 개발할때 JIRA를 활용하는 사례를 소개하고 이를 통해 JIRA를 활용하는 방법을 소개하기 위한 글이다. JIRA의 사용방법은 공식 페이지에 좀더 자세히 나와있으니 참고하고 이 글에서는 사용 시나리오를 기반으로 어떻게 JIRA를 활용하여 제...
이 글은 현재 몸담고 있는 팀에서 제품을 개발할때 JIRA를 활용하는 사례를 소개하고 이를 통해 JIRA를 활용하는 방법을 소개하기 위한 글이다. JIRA의 사용방법은 공식 페이지에 좀더 자세히 나와있으니 참고하고 이 글에서는 사용 시나리오를 기반으로 어떻게 JIRA를 활용하여 제...
이 글은 현재 몸담고 있는 팀에서 제품을 개발할때 JIRA를 활용하는 사례를 소개하고 이를 통해 JIRA를 활용하는 방법을 소개하기 위한 글이다. JIRA의 사용방법은 공식 페이지에 좀더 자세히 나와있으니 참고하고 이 글에서는 사용 시나리오를 기반으로 어떻게 JIRA를 활용하여 제...
이 글은 현재 몸담고 있는 팀에서 제품을 개발할때 JIRA를 활용하는 사례를 소개하고 이를 통해 JIRA를 활용하는 방법을 소개하기 위한 글이다. JIRA의 사용방법은 공식 페이지에 좀더 자세히 나와있으니 참고하고 이 글에서는 사용 시나리오를 기반으로 어떻게 JIRA를 활용하여 제...
이 글은 현재 몸담고 있는 팀에서 제품을 개발할때 JIRA를 활용하는 사례를 소개하고 이를 통해 JIRA를 활용하는 방법을 소개하기 위한 글이다. JIRA의 사용방법은 공식 페이지에 좀더 자세히 나와있으니 참고하고 이 글에서는 사용 시나리오를 기반으로 어떻게 JIRA를 활용하여 제...
사내에서 Spring Security를 이용한 JWT인증을 구현하면서 UsernamePasswordAuthenticationFilter와 같이 이미 구현되어있는 인증 구현체가 없어서 JWT를 이용한 인증 필터를 새롭게 구현하게 되었다. Session 기반 인증만 구현하면서 기존 구...
사내에서 Spring Security를 이용한 JWT인증을 구현하면서 UsernamePasswordAuthenticationFilter와 같이 이미 구현되어있는 인증 구현체가 없어서 JWT를 이용한 인증 필터를 새롭게 구현하게 되었다. Session 기반 인증만 구현하면서 기존 구...
사내에서 Spring Security를 이용한 JWT인증을 구현하면서 UsernamePasswordAuthenticationFilter와 같이 이미 구현되어있는 인증 구현체가 없어서 JWT를 이용한 인증 필터를 새롭게 구현하게 되었다. Session 기반 인증만 구현하면서 기존 구...
너무나 유명한 책이라 이 책이 왜 좋은지 설명할 필요가 없는 책이다. 이제서야 읽어보고 리뷰를 적어보는게 한심스럽기도 하지만 한편으로는 지금 읽음으로써 와닿는 부분이 많았다는 부분에서는 다행이라 생각이 들기도 한다. 리팩터링은 1판에서는 자바로 작성되엇고 2판은 자바스크립트로 작성...
너무나 유명한 책이라 이 책이 왜 좋은지 설명할 필요가 없는 책이다. 이제서야 읽어보고 리뷰를 적어보는게 한심스럽기도 하지만 한편으로는 지금 읽음으로써 와닿는 부분이 많았다는 부분에서는 다행이라 생각이 들기도 한다. 리팩터링은 1판에서는 자바로 작성되엇고 2판은 자바스크립트로 작성...
너무나 유명한 책이라 이 책이 왜 좋은지 설명할 필요가 없는 책이다. 이제서야 읽어보고 리뷰를 적어보는게 한심스럽기도 하지만 한편으로는 지금 읽음으로써 와닿는 부분이 많았다는 부분에서는 다행이라 생각이 들기도 한다. 리팩터링은 1판에서는 자바로 작성되엇고 2판은 자바스크립트로 작성...
너무나 유명한 책이라 이 책이 왜 좋은지 설명할 필요가 없는 책이다. 이제서야 읽어보고 리뷰를 적어보는게 한심스럽기도 하지만 한편으로는 지금 읽음으로써 와닿는 부분이 많았다는 부분에서는 다행이라 생각이 들기도 한다. 리팩터링은 1판에서는 자바로 작성되엇고 2판은 자바스크립트로 작성...
리펙터링을 다 읽고 난 후 다음에 읽을 책을 찾기 위해 서점에 들렀다가 눈에 띄여서 구매해 보았다. 사실 이전엔 눈에 띄지 않다가 이제서야 눈에 띈 이유는 현재 백엔드 챕터 리드를 맡고 있는데 팀원간의 관계와 좀더 나은 개발 문화, 환경을 조성할 수 있는 방법을 조금씩 알아가고 싶...
리펙터링을 다 읽고 난 후 다음에 읽을 책을 찾기 위해 서점에 들렀다가 눈에 띄여서 구매해 보았다. 사실 이전엔 눈에 띄지 않다가 이제서야 눈에 띈 이유는 현재 백엔드 챕터 리드를 맡고 있는데 팀원간의 관계와 좀더 나은 개발 문화, 환경을 조성할 수 있는 방법을 조금씩 알아가고 싶...
리펙터링을 다 읽고 난 후 다음에 읽을 책을 찾기 위해 서점에 들렀다가 눈에 띄여서 구매해 보았다. 사실 이전엔 눈에 띄지 않다가 이제서야 눈에 띈 이유는 현재 백엔드 챕터 리드를 맡고 있는데 팀원간의 관계와 좀더 나은 개발 문화, 환경을 조성할 수 있는 방법을 조금씩 알아가고 싶...
리펙터링을 다 읽고 난 후 다음에 읽을 책을 찾기 위해 서점에 들렀다가 눈에 띄여서 구매해 보았다. 사실 이전엔 눈에 띄지 않다가 이제서야 눈에 띈 이유는 현재 백엔드 챕터 리드를 맡고 있는데 팀원간의 관계와 좀더 나은 개발 문화, 환경을 조성할 수 있는 방법을 조금씩 알아가고 싶...
리펙터링을 다 읽고 난 후 다음에 읽을 책을 찾기 위해 서점에 들렀다가 눈에 띄여서 구매해 보았다. 사실 이전엔 눈에 띄지 않다가 이제서야 눈에 띈 이유는 현재 백엔드 챕터 리드를 맡고 있는데 팀원간의 관계와 좀더 나은 개발 문화, 환경을 조성할 수 있는 방법을 조금씩 알아가고 싶...
이 글은 사내 블로그에 작성한 언어 전환 이야기 내용을 그대로 가져오면서 나의 블로그의 언어톤에 맞게 변경한 글이다. 최근 스포카는 서울 본사 사무실 이전과 함께 도도 포인트 서비스양도 등 많은 변화의 시간을 가졌었다. 내가 몸담은 도도 카트 팀도 앞으로 더 나은 서비스를 제공하기...
이 글은 사내 블로그에 작성한 언어 전환 이야기 내용을 그대로 가져오면서 나의 블로그의 언어톤에 맞게 변경한 글이다. 최근 스포카는 서울 본사 사무실 이전과 함께 도도 포인트 서비스양도 등 많은 변화의 시간을 가졌었다. 내가 몸담은 도도 카트 팀도 앞으로 더 나은 서비스를 제공하기...
이 글은 사내 블로그에 작성한 언어 전환 이야기 내용을 그대로 가져오면서 나의 블로그의 언어톤에 맞게 변경한 글이다. 최근 스포카는 서울 본사 사무실 이전과 함께 도도 포인트 서비스양도 등 많은 변화의 시간을 가졌었다. 내가 몸담은 도도 카트 팀도 앞으로 더 나은 서비스를 제공하기...
요즘 개발자에게 테스트의 작성은 어찌보면 당연해 졌다. 많은 회사들이 테스트 작성 역량을 필요로 해서 테스트를 작성하는 것이 당연해 졌는지, 테스트를 작성하지 않아서 겪었던 안좋은 경험들이 쌓여서 테스트를 작성하게 되었는지, 다들 테스트를 작성해야한다고 말하니까 자신도 함께 작성해...
이 글은 사내 블로그에 작성한 우당탕탕 주문서 개발기 내용을 그대로 가져오면서 나의 블로그의 언어톤에 맞게 변경한 글이다. 최근 도도 카트 팀에서는 정비기간을 마친 후 처음으로 제품 개발을 위한 프로젝트를 성황리에(?) 마쳤다. 약 7주간 진행했던 이 프로젝트는 도도 카트가 제공하...
이 글은 사내 블로그에 작성한 우당탕탕 주문서 개발기 내용을 그대로 가져오면서 나의 블로그의 언어톤에 맞게 변경한 글이다. 최근 도도 카트 팀에서는 정비기간을 마친 후 처음으로 제품 개발을 위한 프로젝트를 성황리에(?) 마쳤다. 약 7주간 진행했던 이 프로젝트는 도도 카트가 제공하...
이 글은 객체지향의 사실과 오해의 내용 중 추상화와 관련된 내용을 읽으면서 좀 더 나은 협업을 위한 나의 생각을 사내 워크샵에서 공유하게 되었고 그 내용을 옮겨 적은 글이다.
이 글은 객체지향의 사실과 오해의 내용 중 추상화와 관련된 내용을 읽으면서 좀 더 나은 협업을 위한 나의 생각을 사내 워크샵에서 공유하게 되었고 그 내용을 옮겨 적은 글이다.
이 글은 객체지향의 사실과 오해의 내용 중 추상화와 관련된 내용을 읽으면서 좀 더 나은 협업을 위한 나의 생각을 사내 워크샵에서 공유하게 되었고 그 내용을 옮겨 적은 글이다.
이 글은 Spring Data JPA를 이용하여 배치 기능을 개발하면서 겪었던 LazyInitializationException 발생 사례를 토대로 문제 해결방법을 찾아가는 과정을 적어본 내용이다. 사실 이 글에서 중점적으로 다루게될 OSIV(Open Session In View)...
이 글은 Spring Data JPA를 이용하여 배치 기능을 개발하면서 겪었던 LazyInitializationException 발생 사례를 토대로 문제 해결방법을 찾아가는 과정을 적어본 내용이다. 사실 이 글에서 중점적으로 다루게될 OSIV(Open Session In View)...
이 글은 Spring Data JPA를 이용하여 배치 기능을 개발하면서 겪었던 LazyInitializationException 발생 사례를 토대로 문제 해결방법을 찾아가는 과정을 적어본 내용이다. 사실 이 글에서 중점적으로 다루게될 OSIV(Open Session In View)...
키친보드는 주문 서비스의 성공적인 출시에 힘입어 고객에게 가치를 전달하기 위한 다음 스텝으로 청구/수납 서비스를 런칭하였다. 이 글에서는 청구/수납 서비스를 개발하면서 겪었던 여러 이야기들을 소개하고자 한다.
키친보드는 주문 서비스의 성공적인 출시에 힘입어 고객에게 가치를 전달하기 위한 다음 스텝으로 청구/수납 서비스를 런칭하였다. 이 글에서는 청구/수납 서비스를 개발하면서 겪었던 여러 이야기들을 소개하고자 한다.
키친보드는 주문 서비스의 성공적인 출시에 힘입어 고객에게 가치를 전달하기 위한 다음 스텝으로 청구/수납 서비스를 런칭하였다. 이 글에서는 청구/수납 서비스를 개발하면서 겪었던 여러 이야기들을 소개하고자 한다.
키친보드는 주문 서비스의 성공적인 출시에 힘입어 고객에게 가치를 전달하기 위한 다음 스텝으로 청구/수납 서비스를 런칭하였다. 이 글에서는 청구/수납 서비스를 개발하면서 겪었던 여러 이야기들을 소개하고자 한다.
모두가 노력해 준 덕분에 올해 목표로 했던 기능 테스트로의 전환을 마무리할 수 있게 되었다. 그래서 그동안 우리가 통합 테스트에서 기능테스트로 왜 전환하게 되었는지, 전환하면서 어떤 이슈들을 겪었는지 소개해보고자 한다.
모두가 노력해 준 덕분에 올해 목표로 했던 기능 테스트로의 전환을 마무리할 수 있게 되었다. 그래서 그동안 우리가 통합 테스트에서 기능테스트로 왜 전환하게 되었는지, 전환하면서 어떤 이슈들을 겪었는지 소개해보고자 한다.
길다고 말하기는 어렵지만 지난 세월 동안 업무를 해오면서 수많은 회의를 겪어왔다. 매주 형식적으로 이루어지는 주간 회의에서부터 상급자에게 보고하려는 회의, 의사결정 논의, 긴급한 이슈를 다루기 위한 회의, 제품 개발을 위한 아이디어를 모으기 위한 회의 등 수많은 형태의 회의들이 있...
길다고 말하기는 어렵지만 지난 세월 동안 업무를 해오면서 수많은 회의를 겪어왔다. 매주 형식적으로 이루어지는 주간 회의에서부터 상급자에게 보고하려는 회의, 의사결정 논의, 긴급한 이슈를 다루기 위한 회의, 제품 개발을 위한 아이디어를 모으기 위한 회의 등 수많은 형태의 회의들이 있...
우리가 이렇게 유명한 라이브러리인 Querydsl을 Kotlin JDSL로 변경하게 된 계기는 무엇이며 변경하면서 우리가 겪었던 이슈나 전환 시 우리가 사용했던 여러 가지 팁들을 공유하면서 전환 이야기를 나눠보도록 하겠다.
우리가 이렇게 유명한 라이브러리인 Querydsl을 Kotlin JDSL로 변경하게 된 계기는 무엇이며 변경하면서 우리가 겪었던 이슈나 전환 시 우리가 사용했던 여러 가지 팁들을 공유하면서 전환 이야기를 나눠보도록 하겠다.
최근 들어 TDD, 클린 코드, 클린 아키텍처, MSA, 디자인 패턴, 애자일 방법론 등 다양한 개발 방법론에 대한 논쟁을 접하면서 느낀 바가 있어 오랜만에 내 생각에 대한 글을 적어본다. 이러한 논쟁에서 어떤 견해가 옳고 그르다고 말하기는 어렵다. 따라서 각자의 기준을 가지고 개...
최근 들어 TDD, 클린 코드, 클린 아키텍처, MSA, 디자인 패턴, 애자일 방법론 등 다양한 개발 방법론에 대한 논쟁을 접하면서 느낀 바가 있어 오랜만에 내 생각에 대한 글을 적어본다. 이러한 논쟁에서 어떤 견해가 옳고 그르다고 말하기는 어렵다. 따라서 각자의 기준을 가지고 개...
최근 들어 TDD, 클린 코드, 클린 아키텍처, MSA, 디자인 패턴, 애자일 방법론 등 다양한 개발 방법론에 대한 논쟁을 접하면서 느낀 바가 있어 오랜만에 내 생각에 대한 글을 적어본다. 이러한 논쟁에서 어떤 견해가 옳고 그르다고 말하기는 어렵다. 따라서 각자의 기준을 가지고 개...
최근 들어 TDD, 클린 코드, 클린 아키텍처, MSA, 디자인 패턴, 애자일 방법론 등 다양한 개발 방법론에 대한 논쟁을 접하면서 느낀 바가 있어 오랜만에 내 생각에 대한 글을 적어본다. 이러한 논쟁에서 어떤 견해가 옳고 그르다고 말하기는 어렵다. 따라서 각자의 기준을 가지고 개...
최근 들어 TDD, 클린 코드, 클린 아키텍처, MSA, 디자인 패턴, 애자일 방법론 등 다양한 개발 방법론에 대한 논쟁을 접하면서 느낀 바가 있어 오랜만에 내 생각에 대한 글을 적어본다. 이러한 논쟁에서 어떤 견해가 옳고 그르다고 말하기는 어렵다. 따라서 각자의 기준을 가지고 개...
최근 들어 TDD, 클린 코드, 클린 아키텍처, MSA, 디자인 패턴, 애자일 방법론 등 다양한 개발 방법론에 대한 논쟁을 접하면서 느낀 바가 있어 오랜만에 내 생각에 대한 글을 적어본다. 이러한 논쟁에서 어떤 견해가 옳고 그르다고 말하기는 어렵다. 따라서 각자의 기준을 가지고 개...
최근 들어 TDD, 클린 코드, 클린 아키텍처, MSA, 디자인 패턴, 애자일 방법론 등 다양한 개발 방법론에 대한 논쟁을 접하면서 느낀 바가 있어 오랜만에 내 생각에 대한 글을 적어본다. 이러한 논쟁에서 어떤 견해가 옳고 그르다고 말하기는 어렵다. 따라서 각자의 기준을 가지고 개...
최근 들어 TDD, 클린 코드, 클린 아키텍처, MSA, 디자인 패턴, 애자일 방법론 등 다양한 개발 방법론에 대한 논쟁을 접하면서 느낀 바가 있어 오랜만에 내 생각에 대한 글을 적어본다. 이러한 논쟁에서 어떤 견해가 옳고 그르다고 말하기는 어렵다. 따라서 각자의 기준을 가지고 개...
개발자로서 팀 단위로 서비스 개발을 위한 코드를 작성할 때 유지보수성을 높이기 위해 일관된 코드 작성, 의존성 방향 제약 등을 위한 팀 내 코드 컨벤션을 작성하거나 본 경험이 있을 것이다. 보통 README.md나 사내 문서에 코딩 컨벤션을 작성해서 개발자들이 숙지하도록 하거나 L...
최근 ChatGPT를 비롯한 생성형 AI가 주목받으면서 우리도 AI 스터디를 진행했다. AI에 대해 들어본 적은 있었지만, 실제로 접해본 적은 없어서 스터디를 통해 프롬프트 엔지니어링, RAG, 랭체인 등의 개념을 배우고 이를 어떻게 활용할 수 있는지에 대한 기초를 익힐 수 있었다...
최근 ChatGPT를 비롯한 생성형 AI가 주목받으면서 우리도 AI 스터디를 진행했다. AI에 대해 들어본 적은 있었지만, 실제로 접해본 적은 없어서 스터디를 통해 프롬프트 엔지니어링, RAG, 랭체인 등의 개념을 배우고 이를 어떻게 활용할 수 있는지에 대한 기초를 익힐 수 있었다...
최근 ChatGPT를 비롯한 생성형 AI가 주목받으면서 우리도 AI 스터디를 진행했다. AI에 대해 들어본 적은 있었지만, 실제로 접해본 적은 없어서 스터디를 통해 프롬프트 엔지니어링, RAG, 랭체인 등의 개념을 배우고 이를 어떻게 활용할 수 있는지에 대한 기초를 익힐 수 있었다...