본문 바로가기

전체 글57

Jenkins public key 변경하기 출근 후 젠킨스를 확인해보니 LTS 신규 버전(2.387.2)이 릴리즈됐다. 우리 회사는 yum으로 패키지를 관리한다. 서버에 들어가서 yum update를 수행했으나, 아래와 같이 예상치 못한 문제가 발생했다. [root@jenkins ~]# systemctl stop jenkins [root@jenkins ~]# yum update Loaded plugins: fastestmirror, langpacks Determining fastest mirrors epel/x86_64/metalink | 7.6 kB 00:00:00 * base: mirror.kakao.com * epel: mirror-kr.misakamikoto.network * extras: mirror.kakao.com * updates:.. 2023. 4. 7.
Entity, DTO 그리고 VO Entity와 DTO, 그리고 VO는 뭐가 다른 걸까? 학과에서 처음 개발 언어를 학습할 때부터 막연히 사용해 오던 VO(Value Object). 여태까지는 그냥저냥 사용해 왔었다. 회사에서도 객체는 vo로 퉁치고, DTO, Entity는 딱히 사용하는 걸 못 봤기 때문이다. 하지만, 최근 Spring Boot에 대해 학습을 하다 보니 항상 마주하던 녀석들이었다. 그동안 나는 왜 이 녀석들을 제대로 학습하지 않았을까? 1. Entity Entity란, 데이터베이스의 특정 테이블과 1:1로 일치하는 클래스이다. Entity는 테이블에 존재하는 컬럼만을 속성으로 가져야 한다. 상속을 받거나, 구현체가 돼서는 안 된다. 또한, 절대 컨트롤러의 Request/Response에서 사용해선 안된다. - Sprin.. 2023. 3. 15.
IntelliJ / 코딩 컨벤션 적용하기 왜 코딩 컨벤션(Coding Convention)을 적용해야 할까? 개인 프로젝트가 아닌 이상, 우리는 항상 협업을 하게 됩니다. 이때, 한 사람 한 사람마다 코드를 짜는 방법은 다를 수 있습니다. 예를 들어, if문을 작성한다고 합시다. 개발자 A if (true) { return; } 개발자 B if(true) return; 예시는 굉장히 간략한 코드를 예시로 들었지만, 운영할 서비스는 굉장히 복잡한 코드로 몇만, 몇십 만 줄 이상이 모여 구성될 것입니다. 이럴 경우 코드의 의도를 파악하기 어려워지고, 오류를 발생시킬 수 있는 잠재적 위험으로부터 안전하지 않습니다. 즉, 유지보수에 굉장히 치명적이라는 것입니다. 이제, 개발하고 있는 IDE에 코딩 컨벤션을 적용하여 프로젝트의 가독성을 더욱 뛰어나게 만.. 2023. 3. 13.
03. 멀티 모듈 프로젝트 구성하기 왜 멀티 모듈로 구성할까? 일반적으로 하나의 웹사이트는 여러 가지 기능이 있다. 웬만한 웹사이트를 예시로 들어도, 아래와 같은 항목은 기본적으로 지원한다. 사용자 생성/삭제/수정 게시판 생성/삭제/수정 관리자 관리 이 모든 기능들을 하나의 프로젝트에서 관리한다면 생각만 해도 복잡할 것이다. 기능이 적을 땐 물론 간편하고 쉽게 쉽게 개발할 수 있다. 하지만 서비스의 규모가 커졌을 땐? 뒤늦게 아차! 싶더라도 기존 방식으로 개발할 수밖에 없다. 왜냐고? 당장 서비스의 규모가 급속도로 커지는데 저것들을 리팩토링 하기엔 전혀 기회비용이 맞지 않는다. 하지만 이를 하나의 패키지에서 모두 관리하게 되면 굉장히 복잡할 것이다. 그렇다고 모듈마다 하나의 단일 프로젝트로 따로 만든다면 그것도 리소스가 불필요하게 소모된다.. 2023. 3. 12.
02. 프로젝트를 깃허브에 연동하기 앞서 만든 스프링부트 프로젝트를 깃허브와 연동합니다. 깃을 연동하는 이유는 물론 버전관리를 통한 소스코드 관리 용이성을 위함입니다. 1. 깃허브 레파지토리 생성 먼저, 깃허브 내 Public Repository를 생성해줍니다. 딱히 상업용 목적이 없기 때문에 Private Repository를 생성할 이유가 없습니다. 2. 프로젝트 연동 Github Bash를 통한 CLI 연동을 수행합니다. 2-1. 프로젝트 디렉토리로 이동 초보자도 알기 쉽게 windows 명령어로 예시를 작성하겠습니다. 2-2. 깃허브 사용자 설정 추가 앞으로 사용해야할 계정의 정보를 입력해줍니다. 2-3. 깃허브 초기화 디렉토리 내에 .git 파일을 생성해줍니다. 2-4. 깃허브 레파지토리 연동 git remote add 명령어를 .. 2023. 3. 12.
01. Spring Boot 3.0 시작하기 최근 개인사가 바빠 자기계발에 신경쓰지 못했다. Spring 3.0 버전대가 릴리즈됐고, Java17이 나왔지만 써본적도 없다. 그렇다고 마냥 놀았냐고 하면 그건 아니다. 사내 프로젝트로 메신저 기능을 주도해서 개발하고 있고, 플러터로 기존 앱을 마이그레이션하고 있다. 하지만 역시 내 본분은 백엔드로서 스프링 프레임워크를 다루어야한다고 생각했다. 1. 프로젝트 시작하기 먼저, Spring Initializr(https://start.spring.io/)로 프로젝트를 생성한다. 참고로, Spring Framework 3.0 버전대는 Java 17 이상을 사용해야 한다. - 빌드 및 종속성 관리에는 Gradle을 사용할 것으로, Gradle - Groovy를 선택한다. - 언어는 Java를 사용할 것이므로,.. 2023. 3. 12.