목록전체 글 (181)
개발자의 오르막
이번 프로젝트는 안드로이드 APP 과 API 가 먼저 Beta 버전으로 런칭예정이다. 팀 내에서 안드로이드 개발자만 있었기 때문에 거의 모든 기능을 안드로이드 앱으로 해결을 하려했기 때문에 인증 또한 Firebase Auth 를 기준으로 개발에 착수하였다. Firebase Admin SDK 받기 먼저 firebase 홈페이지에 들어가 프로젝트를 추가한다. https://console.firebase.google.com/u/0/ 왼쪽 상단의 설정 단추 (톱니바퀴) 를 누른 후 프로젝트 설정 화면의 서비스 계정 탭으로 들어갑니다. Admin SDK 를 활용할 언어에 맞게 비공개 키를 생성합니다. Admin SDK 를 활용할 언어에 맞게 비공개 키를 생성합니다. SpringBoot 프로젝트에 Firebase ..
Layer Architecture 와 멀티모듈 https://catchdream.tistory.com/237 지속 가능한 개발을 위한 멀티모듈과 SpringBoot Keyword Multimodule , common , 지속가능한 개발 , 확장성 , 결합도 , 응집도 Overview 멀티모듈이라 할 때 가장 먼저 생각나는 키워드는 무엇일까? 바로 스파게티 소스이다. 특히나 자바 개발자로서 의존성 catchdream.tistory.com 이전 시간에 Layer 계층에 따라 멀티모듈을 구성할 목표를 설정하였다. app-service-api 프레젠테이션 계층으로서 내부 App API 를 제공한다. app-admin-api 프레젠테이션 계층으로서 내부 Admin API 를 제공한다. app-external-ap..
이번에 포스팅할 주제는 Logrus 라이브러리를 활용한 Json Logging 입니다. Why Json Logging ? Json Logging 을 하는 커다란 이유는 logstash 와 같은 로그 수집을 위해서입니다. 하나의 WAS 로 이루어진 어플리케이션이라면 해당 서버에서만 로그를 확인하면 됩니다. 그러나 WAS 도 여러 개의 서버로 분산될 수 있으며, 하나의 로직(작업) 자체가 여러 미들웨어 서버로 분산될 수 있습니다. 여러 서버에 분산된 로그를 한 곳으로 수집하고, 데이터 가시화를 도와주는 것이 logstash 입니다. 이를 위해 우리는 JSON Format 으로 로그 수집이 용이하게 로그를 남길 필요가 있습니다. Golang 에서의 Logrus 오픈소스 Golang 에서는 내장 패키지로 제공하..
Keyword API , Rest Docs Overview API 문서를 작성할 때에는 크게 2가지 방법이 있다. 바로 Swagger UI 와 Spring Rest Docs 이다. Swagger UI Spring REST Docs Api Controller, Dto 부분에 애노테이션을 추가하여 문서가 작성되는 방식 테스트 코드로 문서를 작성하는 방식 (테스트가 성공해야만 작성할 수 있음) API 테스트가 가능하다. API 테스트가 불가능하다. 위의 표처럼 Swagger UI 는 문서도 깔끔하고, API 테스트를 바로 할 수 있지만, 문서를 위한 어노테이션을 Controller, Dto 부분에 작성해야하기 때문에 가독성이 떨어진다. 따라서 이번 Tortee 프로젝트에는 Spring Rest Docs 를 선..
Keyword Multimodule , common , 지속가능한 개발 , 확장성 , 결합도 , 응집도 Overview 멀티모듈이라 할 때 가장 먼저 생각나는 키워드는 무엇일까? 바로 스파게티 소스이다. 특히나 자바 개발자로서 의존성 덩어리의 모듈을 바라보았을 때는 그저 기피하고 회피하고 싶은 구성이다. 그러나 애플리케이션마다 여러 레파지토리로 분리하는 것은 너무 많은 번거로움을 만들어낸다. 예를 들어, API 어플리케이션과 ADMIN 어플리케이션이 있다고 하자. 동일하게 사용하는 도메인 로직을 변경할 때 각 레파지토리에서 로직간의 충돌을 고려해야 한다. 특히 JPA 를 사용할 때의 Entity 클래스는 변경 소요가 있을 때마다 모든 레파지토리를 신경써야한다. 물론 처음 개발할 때부터 기능명세를 명확히 ..
Keyword golang , build , makefile , docker Overview 실무에서 프로젝트를 구축할 때, 빌드 자동화, 버전관리 등에 대한 작업을 해야한다. 또한 배포할 때 우리가 빌드했던 프로젝트를 이미지화해서 원하고자 하는 버전을 서버에 배포할 수 있다. 이러한 작업들을 도와주는 Tool 이 바로 Makefile 과 Docker 이다. Makefile Dockerfile Golang 프로젝트를 생성하고, Makefile 과 Dockerfile 을 활용해서 간단한 Golang 어플리케이션을 생성해 본다. Go 프로젝트 실습 1. Go 프로젝트 디렉터리 생성 2. go 모듈 생성 Go module 은 go 패키지들의 종속성을 관리하는 패키지 관리 시스템이다. go mod init {프..