은로그
[우테코] 프리코스 4주차 '크리스마스 프로모션' 미션 회고록
4주 차 미션은 크리스마스 프로모션 으로이메일 형식의 요구사항이 전달되었습니다. 3주 차 미션과 동일한 학습 목표를 가졌고, 클래스 분리에 대해서 도움을 주는 예시와 요구사항이 추가 되었습니다.추가된 요구사항은 UI와 도메인 로직을 나눠서 생각할 수 있도록UI에 관한 클래스 예시였으며, 저는 도메인 분리에 초점을 맞춰야 한다는 생각이 들었습니다. 따라서 이번 미션에서는도메인을 분리하는 것에 조금 더 깊이 이해할 수 있도록 이 전 주차에서 어려움을 겪었던Java Enum 에 대해서 알아보는 것이 중요하다고 생각했습니다. 3주 차 미션에서 Enum 사용이 어려우셨다면저와 같이 Java Enum 어떻게 사용해야 하는지 글로 정리하는 것을 추천드립니다 👍 저는 자동차 경주 미션에 다음과 같은 요구사항을 추가하..
[우테코] 프리코스 3주차 '로또' 미션 회고록
3주 차 미션은 자동차 경주 미션이었습니다. 이번 미션에서 두 가지 추가 요구 사항이 생겼습니다. 클래스(객체)를 분리하는 연습도메인 로직에 대한 단위 테스트를 작성하는 연습 3주 차 미션을 진행하기 전, 추가 요구 사항을 확인하고 구현한 자동차 경주 미션을 되돌아보니,도메인 로직에 대한 단위 테스트가 작성되었는지 파악하기가 어려웠습니다.그 이유 중 하나는 무엇을 테스트하는지 명확하게 알 수 없는 test 메서드 네이밍의 문제가 가장 컸다고 생각합니다. 그래서 2주 차 피드백과 동기들의 소통을 통해이번 미션에서 추가로 신경 쓴 부분은도메인 분리와 메서드를 분리할 때 일관적인 네이밍 규칙을 통해 가독성을 향상해 코드를 이해하는데 들이는 시간을 최소화해 보는 것으로 정했습니다! 적용한 Java 네이밍 규칙에..
[우테코] 프리코스 2주차 '자동차 경주' 미션 회고록
2주 차 미션은 자동차 경주 미션이었습니다. 2주 차 미션을 진행하기 전,1주 차 피드백과 동기들의 소통을 통해 이번 미션에서 가장 신경 쓴 부분은일급 컬렉션 사용,객체지향 설계 원칙을 따르도록 객체에게 책임과 역할을 부여하는 부분입니다. 일급 컬렉션이 무엇인지 궁금하시다면,제가 정리한 일급 컬렉션을 보고 도움이 되시길 바랍니다! 기능 요구 사항을 복사하여 필요해 보이는 기능 목록 단위를 설정하고순서대로 도메인과 그에 맞는 역할과 책임을 주는 형식으로 TDD 개발을 진행하였습니다. 이번 미션에서 추가된 요구 사항 중본인이 정리한 기능 목록이 정상 동작함을 테스트 코드로 확인한다.의 요구사항을 신경 써서 기능 목록을 도메인 기준으로 필요한 기능들을 정리하여 작성하였습니다. 이번 미션에서 지난주와의 코..
[협업프로젝트] Jenkins와 Docker로 CI/CD pipeline 구축하기 (2)
인프라 구축 환경 AWS EC2 인스턴스 2개 활용 예정 구축용(Jenkins) 서버 : Jenkins, Git, Gradle, Docker, Jdk8 배포용 서버 : bash, Spring boot Git Repository : Github 인프라 구축을 하기 위해 배포할 서버가 필요하다. 여기서 나는 AWS 프리티어를 사용하고 있고 제일 보편적으로 AWS EC2를 많이 사용하기 때문에 EC2 인스턴스 t2.micro 리전을 생성하여 인프라 구축 환경을 만들려고 한다. 목표 다음과 같은 그림 구조로 CI/CD 파이프라인을 구축하여 자동배포가 가능하도록 할 예정이다. EC2 Jenkins 서버 구축 1. 스왑 메모리 프리티어 기준 EC2 메모리는 1GB이며, 젠킨스는 스프링 프레임워크 프로젝트 빌드시 약..
[협업프로젝트] Jenkins와 Docker로 CI/CD pipeline 구축하기 (1)
서론 프로젝트를 배포하면서 빌드를 하루에 한 번 이상 진행할 수 있고, 하지 않을 수 있지만 일주일, 한 달로 따지면 많은 빌드를 할 것이다. 여기서 빌드과정마다 dev 환경의 test, build를 진행하고 오류가 없는 jar 파일을, ec2 서버에 배포하려면 많은 시간을 투자해야 한다. 이러한 반복되는 과정은 자동화할 필요가 있고, 이를 구축하는 방식(CI/CD)은 다양한 도구가 존재하여 비교하고 결정하는 과정을 포스팅하기로 하였다. 이번 글의 목차로는 다음과 같다. CI/CD 개념 가장 많이 쓰이는 CI/CD jenkins, git action 비교 Jenkins를 선택한 이유 CI/CD란? CI = 지속적인 통합(Continuous Integration); 한마디로 “빌드와 테스트 자동화” CD ..