활동 9

코드스쿼드 선발과제(2024, 백엔드 과정)

12월 1일부터 12월 5일까지 진행된 2023년 코드스쿼드 선발 과제 진행 후기입니다. https://gist.github.com/dearmysolitude/467392c4331d8bd348be3b2fee61ab90 해당 gist의 README.md 와 동일한 내용입니다. Intro 5 일 동안 과제를 진행하며, 첫째 날 늦게 시작하여 마지막 전날에 완료하였음. 마지막 날은 과제 외에 제출을 요구하는 소개서와 설문, 그리고 리드미 정리를 진행하였다. 주어진 과제 기간이 여유롭지 않아 구현을 빠르게 시작하였다: 그러다보니 설계에는 별로 시간을 사용하지는 못함. 기능 요구사항 1 단계에서는 게임 로직을 구현 2 단계에서는 2 인이 플레이할 수 있는 로직 변경과 콘솔 입출력 실행의 추가 기능 3 단계에서는 ..

우테코 프리코스 4: java-christmas

우테코 프리코스 4: java-christmas를 구현하며 생각해본 내용을 정리하였습니다. https://github.com/dearmysolitude/java-christmas-6-dearmysolitude 이 단계에서는 문제 해결을 위해 1단계부터 지금까지 피드백 받은 내용을 적용하고 문제 해결에 초점을 맞추어 구현하였습니다. MVC 모델에 대해서는 정식으로 적용하지는 않았으므로 감안하고 보시면 감사하겠습니다. 주어진 입력 라이브러리만 사용할 것 Output View 와 Input View를 나누어서 구현할 것 단위 테스트 코드를 적용할 것 메서드는 하나의 기능만 하도록 구현할 것 3항 연산자와 else 예약어를 사용하지 말 것 클래스에서 getter로 필드값을 가져와서 처리하지 말고, 되도록이면 클..

우테코 프리코스 3: java-lotto

우테코 프리코스 3주차 미션을 진행하면서 학습한 내용을 정리한 문서입니다. https://github.com/dearmysolitude/java-lotto-6/tree/dearmysolitude 게임 기능 1. 로또 번호의 숫자 범위는 1~45 까지이다. 2. 1개의 로또를 발행할 때 중복되지 않는 6개의 숫자를 뽑는다. 3. 당첨 번호 추첨 시 중복되지 않는 숫자 6개와 보너스 번호 1개를 뽑는다. 4. 당첨은 1등부터 5등까지 있다. 당첨 기준과 금액은 아래와 같다. - 1등: 6개 번호 일치 / 2,000,000,000원 - 2등: 5개 번호 + 보너스 번호 일치 / 30,000,000원 - 3등: 5개 번호 일치 / 1,500,000원 - 4등: 4개 번호 일치 / 50,000원 - 5등: 3개 ..

우테코 프리코스 2: java-racingcar

왜 다 MVC 모델로 하는건데ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 다시 짤 수도 없고... 테스트 코드나 공부해봅시다 https://github.com/dearmysolitude/java-racingcar-6 여러 차의 이름을 입력받고, 모든 차에 대해 각각 주사위를 굴려 4 이상이 나오면 전진하도록 하여 입력된 횟수대로 n번 수행하여 우승자를 출력하는 어플리케이션. 과제는 간단하지만, 추가적으로 테스트 코드를 작성하고, 메서드를 간략화하여 indentation을 2 이하로 하는 요구사항이 추가되었다. 구현하고 보니 테스트 코드를 작성하면서 구현하는게 나았을지도 모르겠다는 생각을 했다(하지만 테스트 코드를 작성해 보는게 처음이다보니 먼저 손 대기가 쉽지 않았다😂). ** 구현 기능마다 커밋하라는 지시사항을 읽..

우테코 프리코스 1: java-baseball

우테코 프리코스 미션을 진행하면서 배운 내용들을 정리하였습니다. https://github.com/dearmysolitude/java-baseball-6 구현 0. Application public class Application { public static void main(String[] args) { // TODO: 프로그램 구현 int button = 1; AnswerBox answerBox = new AnswerBox(); List numGenerated; System.out.println("숫자 야구 게임을 시작합니다."); while (button == 1) { // 게임: 종료 버튼(2) 안눌리면 계속 진행됨 numGenerated = NumGen.generate(); answerBox.s..

01 | 무중단 배포환경 구축(Blue/Green) - 2

구축 Code Deploy의 배포 과정은 다음과 같다. 애플리케이션 최상단 경로에 AppSpec.yml 파일(배포에 필요한 절차 명세)을 추가한다. 특정 버전에 대한배포 요청이 들어오면, Code Deploy는 배포할 EC2 인스턴스에 설치된 Code Deploy Agent들과 통신하여 Agent들에게 요청 버전을 배포해달라고 요청한다. Agent들은 코드 저장소(여기에서는 jar파일이 저장된 S3)에서 프로젝트 전체를 서버에 내려받고, AppSpec.yml 파일의 절차대로 배포를 진행한다. Agent는 배포 후 성공/실패 여부를 알려준다. 3. Code Deploy를 활용한 자동 배포 루틴 만들기 (1) EC2 세팅 인바운드 규칙: ssh 접속은 현재 내 IP, HTTP, HTTPS 포트인 80, 44..

01 | 무중단 배포환경 구축(Blue/Green) - 1

버전 관리: Github CI/CD: Github Actions, Code Deploy, S3 정적 분석: Sonar Cloud (+ Peer inspection) 서버 / 클라우드: AWS 구현: Spring framework 빌드: Gradle 배포시 서버 보조(리버스 프록시): NginX DB: MySQL, Redis Tools 직접 구축해 나가면서 아래의 설명들을 더 잘 이해할 수 있었다. 자세한 개념과 설명은 출처 글들을 읽어보기 바란다. 이 글에서는 각각에 대해 자세하게 파고들지는 않았다. Github Actions 출처 1 출처 2 Github Actions는 Github 저장소를 기반으로 소프트웨어 개발 워크플로우를 자동화, 사용자의 설정에 맞추어 지정, 실행할 수 있는 도구이다. Buil..

나만의 무기 : 회고

나만의 무기 개요 5 주의 기간에 4~5 명의 팀원을 반 내에서 모집(!)하여 프로젝트를 진행한다. 프로젝트는 마지막 주 발표(시연)와 포스터를 통해 협력사, 정글 구성원과 결과를 공유한다. 진행한 프로젝트: 로드메이커 해당 프로젝트에 대한 내용은 Github 리포지터리에 있음(아직은 개선해야 하는 부분이 많습니다!). 블로그에는 그 내용보다는 그 과정에서 얻은 기술적, 비기술적 내용들이나 문제 해결에 대한 내용들을 포스트해 나갈 것 같다. Hard Skills Java, Spring Boot, JPA, QueryDSL Github Actions AWS CodeDeploy, EC2, S3 MySQL 여러 Conventions: Code convention, Commit Convention Soft Ski..