graphql

GraphQL DataLoader를 이용한 성능 최적화

이번 포스팅에서는 GraphQL 에서 N+1 문제를 해결하기 위한 솔루션인 DataLoader에 대한 소개와 GraphQL 에 DataLoader를 어떤식으로 적용해야되는지를 정리해보려고 한다. N+1 문제N+1 문제는 ORM을 사용할때 주로 발생하는 성능...

graphql

GraphQL Data Mocking

이번 포스팅에서는 GraphQL을 사용할때 Data를 Mocking하는 방법에 대해서 소개해보려고 한다. MockingMocking은 주로 테스팅에서 많이 사용되는 용어이다. Unit Test를 작성할때 테스트하기 어려운 상황에서 행위검증을 위해 주로 사용된다....

Go

Golang과 Lambda를 활용한 알림 서비스 개발기

평소에 Festa 라는 이벤트 플랫폼을 가끔씩 이용하는 편이다. 이 서비스에는 내가 관심있는 IT 관련 세미나 혹은 해커톤과 같은 밋업이 종종 올라오곤 한다. 보통은 페이스북 그룹에 공유된 글을 통해서 혹은 지인들을 통해서 알게됬는데 그럼에도 놓치는 것들이...

TDD로 Golang 시작하기

새로운 언어를 공부할땐 책을 보면서 syntax를 익히거나 간단한 프로젝트를 진행했었다.이번엔 Go를 공부하게됬는데 TDD를 통해서 언어에 익숙해지는 방법을 시도해봤다. 이런 방법은 언어에 익숙해지면서 Test, Refactoring에도 자연스럽게 익숙해질 수...

vim

Vim Configuration 정리

개발을 할때 에디터로 주로 Vim을 사용한다. 상황에 따라 Visual Studio Code 혹은 WebStorm과 같은 IDE에 Vim Plugin을 올려서 사용하거나 터미널 기반으로만 사용하기도 했다. 최근엔 WebStorm과 같이 사용하다가 무겁다는 느낌을...

React

React Infinite scroll 구현하기

React로 Infinite scroll을 구현하면서 정리한 글이다. Infinite scroll?Infinite scroll은 한 번에 모든 컨텐츠를 렌더링 하지 않고 페이지 내용을 아래로 스크롤하면 새로운 컨텐츠를 덧붙여서 렌더링 하는 방식이다. 로딩해야할...

javascript

📦 Monorepo Tutorial

Monorepo에 대해 학습한 내용을 정리한 글이다. 📦 Monorepo?여러 프로젝트를 진행하다 보면 동일한 모듈을 다른 프로젝트에도 같이 사용해야 될 경우가 생긴다. 예를 들어 backend에서 admin 과 실제 서비스 프로젝트 간의 모델, 도메인...

Testing & Refactoring

필자는 개발을 시작하고 Testing에 대해서 꾸준히 들어왔다. 관련 세미나에 참석해서 내용을 들어 보기도 하고 실무 혹은 사이드 프로젝트를 통해서 적용해 보려고 여러번 시도했다. 시도 할때 마다 느꼈던 점은 어떤 식으로 테스트 코드 작성을 시작해야 될지 막막...

Docker

Jenkins x Docker Tomcat War 배포하기

요즘의 소프트웨어 개발은 어떻게 만들까도 많이 고민하지만 어떻게 운영하고 유지보수 할 것인가? 에 대한 고민을 많이 하는것 같다. 어플리케이션 구현보다는 운영에 초점이 맞춰지는 것이다. 소프트웨어 개발을 분석/개발/테스트/배포/운영 의 단계로 나눈다면...

Redis

Redis Cluster 구축하기

최근에 구축한 서버환경 중 Session Clustering과 Cache의 용도로 Redis를 사용한 적이 있다.하지만 Redis가 설치된 서버가 한개라 해당 서버가 다운되면 모든 WAS가 서비스를 하지못하는 상황이 나오게 된다.이런 문제때문에...