전체 글 31

[우테코 7기] 레벨1 글쓰기 미션 - 극한의 효율러가 되기 위한 여정

🚨우아한 테크코스 7기 백엔드 레벨1 글쓰기 미션을 빙자한 회고록 (2025.02.11 ~ 2025.04.04)🚨첫 번째 유강스 🧘🏽3월 5일 나의 첫 유강스는 다음과 같았다.내 의견에 대한 확신을 갖고 남들을 설득하기 이 유강스를 선택할 당시에 우테코에서 한 달도 안 되는 짧은 기간이었지만 미션을 하면서 가장 크게 느낀 점은 "다들 본인의 생각을 잘(?) 말한다" 였다.주어진 미션을 하면서 실력적으로 가장 크게 한계를 느꼈던 부분은 내 주장에 근거가 없다는 것이었다.어떤 질문을 해도 본인만의 기준이 딱 정립되어 있으면 대답할 때 자신감을 갖고 내 의견을 말할텐데, 나만의 기준이 없는 상태에서는 어떤 의견이 들어오면 "오 좋은데요?"라며 설득이 된다.이런 소프트스킬을 기르고 싶어서 선택하게 되었다..

[우테코 7기] 블랙잭 미션 회고(함수형 인터페이스, 상태 패턴 State Pattern, 불변 클래스)

블랙잭 미션레벨1의 세 번째 미션은 블랙잭 게임을 구현하는 것이었다. 블랙잭은 딜러와 플레이어가 겨루는 카드게임이다. step1에서는 플레이어 이름을 입력받아 게임을 진행하고, 딜러와 플레이어의 승패를 출력하는 것이 목표였다. step2에서는 베팅 기능이 추가되어 승패 결과에 따라 받는 상금까지 출력하는 것이 목표였다.이번 페어는 서프였다! step1구현 준비(?)블랙잭 게임을 한 번도 안 해봐서 룰을 몰랐다. 우리 조에서 같이 블랙잭 카드 게임을 직접 해보자는 얘기가 나와서 거의 이틀 동안 블랙잭 게임을 같이 하면서 룰을 익히는 시간을 가졌다... (논게 아니라 도메인 공부를 한 것이다.) (사실 넘 재밌었다.) 그리고 나중에 포수타에서 들었는데, 이렇게 미션 하기 전에 실제로 그 미션에 대해 공부해 ..

[Java] 제네릭(Generic)을 알아보자(불공변, 와일드카드)

용어정리클래스와 인터페이스 선언에 타입 매개변수가 쓰이면, 이를 제네릭 클래스 혹은 제네릭 인터페이스라고 한다.public class ClassName { ... } // 제네릭 클래스public interface InterfaceName { ... } // 제네릭 인터페이스 List와 같이 다양한 종류의 데이터를 관리하는 경우 데이터의 타입을 특정 타입으로 고정할 수 있다. 제네릭을 사용하지 않았을 경우ArrayList values = new ArrayList();values.add("우테코");values.add(100);values.add(new Position(7, 25));String first = (String) values.get(0);int second = (int) values.get(1..

Study/Java 2025.03.14

[우테코 7기] 출석 미션 회고(TDD)

출석 미션📅우테코 레벨1의 두 번째 미션은 최종 코테였던 출석 미션이었다. (다시는 안 볼 줄 알았건만...)이번 미션의 키워드는 'TDD'였다. 코치님들이 이번 미션에서는 다른 거 생각 안 하고 TDD만 확실히 학습하라고 말씀하셔서 TDD 익히는데 시간을 많이 쏟았다.출석 미션 페어는 도기였다. Step1️⃣구현에 급급했던 step1네오의 수업이 큰 도움이 되었다.`막막하면 탑다운으로 시작하고 나중에 바텀업으로 바꿔도 된다. 방식은 왔다갔다 하기도 한다.``테스트를 먼저 구체적으로 작성하지 않는다. 수도코드로 먼저 작성하자.``객체의 필드값까지 구체적으로 정해둘 필요 없다. 큰 틀만 기억해두자.``TDD 그린 단계에서, 출석 추가 기능 구현하는 상황에서 AttendanceManager에서 시작을 했다..

[우테코 7기] 로또 미션 회고

첫 미션이었던 로또 미션🎫우테코에서의 첫 미션은 로또 미션이었다.첫 페어프로그래밍 경험이어서 많은 것이 서툴렀고, 심지어는 미션 제출 방법과 순서도 많이 헷갈렸다...step1과 step2로 이루어져 있고, step1은 페어와 함께 짝 프로그래밍으로 개발한다. 이후 리뷰어의 피드백을 받고, step2에서는 혼자 리팩토링을 진행한다. PR과 리뷰받기를 반복하고 리뷰어가 merge해주면 해당 미션이 끝나게 된다.나의 첫 페어프로그래밍은 헤일러와 함께 진행했다! Step1️⃣인터페이스의 사용주어진 요구사항을 분석하여 리드미부터 작성했다. TDD로 구현할지도 잠깐 고민했지만 TDD는 다음 미션때 확실히 공부하기로 헤일러와 합의를 보고 원래 하던 방식대로 도메인 설계를 해나갔다. 고민이 되었던 부분은 로또 머신..

[우테코 7기] 백엔드 1주차 회고

연극조랑 친해지기 👩‍👩‍👧‍👧첫 OT날 연극 조가 정해졌다! 그리고 레벨1에서의 코치는 리사 😆점심에 백소정가서 점심을 먹으며 연극조랑 친해지는 시간을 가졌다. 나 혼자만의 생각일지도 모르지만... 우리 연극조는 정말 분위기가 좋은 것 같다 ㅎㅎ 데일리미팅 🗣본격적으로 수요일부터 데일리미팅이 시작되었다.이틀 정도는 돌아가면서 자기소개(mbti, 취미ㅋㅋ)를 하고 질의응답을 하는 시간을 가졌다.팀원들의 닉네임도 몰랐는데 이 시간을 통해서 잘 알 수 있어서 좋았다.특히 목요일에는 리사가 재택근무 이슈로 돔푸가 데일리장을 맡아서 진행했는데,,, 라이어게임을 준비해와서 이 게임을 하면서 정말 많이 웃고 좀 친해졌던 것 같다😆 감사합니다 돔푸... 첫 로또 미션, 첫 페어프로그래밍 👯‍♂️수요일부..

[SpringBoot] Insomnia로 API 테스트하기, JPA 설정, 테이블 생성(Entity)

회원가입 기능을 구현하기 위해 Insomnia로 api테스트를 하려고 했다.http://localhost:8080/api/user/signup 주소로 post 요청을 보내니 이런 오류가 발생했다.org.springframework.dao.InvalidDataAccessResourceUsageException: JDBC exception executing SQL [select m1_0.id,m1_0.intro,m1_0.join_date,m1_0.name,m1_0.nickname,m1_0.password,m1_0.profile_image_url from member m1_0 where m1_0.name=?] [Table 'box_it_db.member' doesn't exist] [n/a]; SQL [n/a..

Study/SpringBoot 2025.01.22

[Git] 팀 프로젝트 환경 구성 - 각자의 branch 파기

1. 커밋 작성자 식별$ git config --global user.email "이메일주소" 나는 이미 tmddus4671@gmail.com 으로 설정되어 있으므로 패스. 2. 브랜치 생성 후 전환$ git checkout -b feature/sy-signup-login 브랜치 이름은 컨벤션 맞추어 작성하는 것이 좋다./- 3. 원격 저장소에 생성된 브랜치 푸시$ git push origin feature/sy-signup-login 4. 생성한 브랜치(로컬)에서 파일 수정하고, main 브랜치(원격)를 pull 받고, 생성한 브랜치(원격)에 push$ git pull origin master ==> master 브랜치에서 달라진 내용이 있다면 가져오기$ git add --all ==>..

개발/Git 2025.01.16

[개발 인턴 회고] 生초보 개발자의 성장기(12월)

12월프로젝트 마무리🔚마지막 달은 내 프로젝트를 마무리하고, 이슈 정리를 하는 기간이었다.스프링 부트를 사용한 건 아니지만 자바로 처음부터 끝까지 프로그램을 만드는 경험을 해봄으로써 빌드 환경 설정이나 자바 문법에 익숙해지는 경험을 할 수 있었다. 원격 서버로 접속해서 젠킨스 파이프라인 테스트를 하면서 실수로 환경변수 jdk 버전을 변경했던 적이 있는데... 지금도 그 때 생각만 하면 식은땀이 난다. 공용으로 사용하는 도구 버전은 절대 내 마음대로 바꾸면 안 된다는 교훈을 얻은 경험이었다.아참 우리 회사는 지라로 이슈 티켓을 작성하고 관리했다. (보통 회사에서 지라를 주로 쓰는 것 같다.)때문에 나도 지라로 미해결되었거나 더 수정해야 할 이슈를 정리하고 퇴사했다. 오프보딩 PT😇온보딩 PT를 발표했을..

회고 2025.01.10

[Docker] 생활코딩 Docker 입구 수업 - Apache 웹 서버

미니 플젝에 도커 도입하기 위해 쫌쫌따리 공부hub.docker.com 에서 이미지 확인 가능기본 명령어 모음docker pull [image 이름]docker hub에서 image를 다운받을 때 쓰는 명령어 docker run --name [컨테이너 이름] [이미지 이름]작성한 이름으로 컨테이너 생성 docker ps실행중인 컨테이너 목록 docker ps -a모든 컨테이너 목록 docker stop [컨테이너 이름]실행중인 컨테이너 스탑 docker start [컨테이너 이름]스탑됐던 컨테이너 다시 시작 docker logs -f [컨테이너 이름]도커 로그 실시간으로 보기 docker rm [컨테이너 이름]실행중이지 않은 컨테이너 삭제 docker rm --force스탑하지 않고 컨테이너 삭제 doc..

Study/Docker 2025.01.07