2024/12 48

Day 078 - 뉴스피드 프로젝트 50%, 레코드 클래스(Record Class)를 처음 쓰다, 세터(Setter) 잡으러 다니느라 바쁜 사람? 저요!

[인용 및 참고 출처]1. 구글 검색: Oracle, "record class docs", Record Classes, (2024.12.23) 1. 프로젝트 진행 상황 및 계획 🥇 CRUD 구현하기: 팔로잉 요청 (완료)🥈 CRUD 구현하기: 팔로잉 목록 조회 (완료)🥉 CRUD 구현하기: 팔로잉 상태 변경 (완료)4️⃣ CRUD 리팩토링(refactoring) (진행 중, 24.12.24 완료 목표) 5️⃣ 오늘 느낀 점과 고민을 TIL에 기록하기 (완료)6️⃣ 24.12.20 TIL 내용 보충하기 (진행 중, 24.12.26 완료 목표)7️⃣ 일정 관리 앱 Develop 밀린 트러블슈팅(troubleshooting) 작성 끝내기 (보류, 24.12.29 완료 목표)8️⃣ 일정 관리 앱 만들기 K..

Day 077 - 뉴스피드 프로젝트 15%, Octotree 사용하기, 깃허브(GitHub)에서 난생처음 상어 뱃지를 얻다.

[인용 및 참고 출처]1. 구글 검색: 브런치, "팀장은 외롭다", 팀장님이 나에게 외롭다고 말했다, (2024.12.22) 1. 프로젝트 진행 상황 및 계획 🥇 뉴스피드 프로젝트 진행하기: 회원 정보 조회 (완료)🥈 뉴스피드 프로젝트 진행하기: 본인 비밀번호 수정 (완료)🥉 뉴스피드 프로젝트 진행하기: 회원 탈퇴 (완료)4️⃣ 밀린 트러블슈팅(troubleshooting) 작성 끝내기5️⃣ 일정 관리 앱 만들기 KPT 회고하기6️⃣ 일정 관리 앱 Develop KPT 회고하기7️⃣ 뉴스피드 프로젝트 진행 후 느낀 점 TIL에 정리하기 (완료) 2. 고민Q1. 스프링 시큐리티(Spring Security)를 사용할까 말까?A1. 스프링 시큐리티를 사용했다. JWT(Json Web Token)을 구현..

Day 076 - 과감하게 휴식

어젯밤에 잠이 쉽사리 오지 않았다. 열심히 달리긴 했는데, '지금 이렇게 무작정 달리는 상황이 맞는가?' 질문을 시작으로 온갖 생각이 꼬리에 꼬리를 물었다. 아무래도 잠자는 시간을 줄이고 쉬는 시간을 건너뛰며 도전 단계 과제를 해내면서 하루 24시간을 코딩으로만 보낸 탓이 아닐까, 팀 프로젝트에 제대로 돌입하기 전에 지금 하루라도 쉬어야겠단 직감이 들었다. 글로 남겨야 할 메모가 산더미라, 오늘이야말로 몸과 마음이 탈진하지 않도록 잠시 멈춰야 할 때라고 확신했다. 생각해 보면, '잘 쉬는 법'을 잘 모른다. 코드를 작성하다가 오류가 생기면, 그 오류를 해결하기 전까진 못 쉰다. 모니터에서 시선을 뗀다 한들 머릿속이 그 오류로 꽉 차서 쉬어도 쉬지 않는 느낌에 휩싸인다. 미니 프로젝트를 제외하고 맞이한 첫..

Day 075 - 뉴스피드 프로젝트 10%, ERD 및 API 명세서 작성, 일정 계획 및 업무 분담 완료 (25.01.01 수정 예정)

1. API 명세서2. ERD(Entity Relationship Diagram)3. 데이터베이스 스키마(Database Schema)4. 클래스 레이어(Class Layer)더보기├── application│ └── SNSApplication.java │├── common│ └── BaseEntity.java │├── config│ ├── JwtTokenFilter.java │ ├── LoginFilter.java │ ├── PasswordEncoder.java │ └── WebConfig.java │├── controller│ ├── ..

Day 074 - 과제 제출, ERD와 API 명세서가 담긴 리드미(README)는 어떻게 작성하면 좋을까?

1️⃣ [링크] 일정 관리 앱 Develop 리드미(README) 1단계2️⃣ [링크] 일정 관리 앱 Develop 리드미(README) 2단계3️⃣ [링크] 일정 관리 앱 Develop 리드미(README) 3단계, 4단계4️⃣ [링크] 일정 관리 앱 Develop 리드미(README) 5단계, 6단계5️⃣ [링크] 일정 관리 앱 Develop 리드미(README) 7단계, 8단계 리드미(README)를 다섯 편이나 작성했으니 원 없이 썼다고 말해도 과장이 아닐 터다. 각 과제의 데이터베이스(database) 구조에 맞춰 내용을 고치는 내내 미리 틀을 잡아두길 정말 잘했다는 안도감이 맴돌았다. 프로젝트를 하다 보면 문서 작성할 일이 정말 많은데, 이번에 실컷 연습했다. 리드미를 작성하면서 팀원들이 고생..

Spring 본캠프 Day 073 - 6단계, 7단계, 8단계 일정 관리 앱 Develop 완료! 이제 남은 과제는 문서 더미에서 빠져나오기!

어제 도전 과제 6단계를 해내길 정말 잘했다! 왜냐하면 아침부터 추가로 구현해야 하는 부분이 생겼기 때문이다! 바로 소프트 딜리트(Soft Delete), 일명 논리 삭제였다! 논리 삭제는 이름에서 알 수 있듯이 클라이언트(client)에게는 삭제되었다고 보여주고, 데이터베이스에는 그 정보가 그대로 있는, 말 그대로 '삭제된 척하는 삭제'였다.필수 과제 2단계부터 @ManyToOne 어노테이션(annotation)을 써서 단방향 연관관계를 설정해야 했는데, 그 상태에서 하드 딜리트(hard delete)를, 일명 물리 삭제를 하려고 하면 오류 메시지를 마주했다. 이 상태에서 정보를 진짜로 지우고 싶다면 cascade 옵션을 설정해야 하는데, 잠시 고민했다가 논리 삭제를 골랐다. 일단 정보 자체가 소중한 ..

Spring 본캠프 Day 072 - 4단계 및 5단계 일정 관리 앱 Develop 완료, 5단계 진행 중, 첫 쿠키(🍪) 생성 및 예외 처리

아주 예전에 '두 번 구운 과자'를 의미하는 이탈리아 전통 간식 비스코티(Biscotti)와 마카롱을 구운 뒤로 쿠키(🍪) 구울 일이 없을 줄 알았는데, 오늘 아주 원 없이 구웠다. 반환을 이상하게 해서 'redirect: /' 문자열이 그대로 출력되긴 했지만, 아무튼 굽긴 잘 구웠다. 정확히는 세션(session)을 생성했지만. 그 과정에서 수많은 문제를 일으키긴 했지만.개발 분야를 공부하는 지금은 모든 순간이 전부 새롭지만, 오늘은 그토록 시도하고 싶었으나 엄두조차 내지 못한 '예외 처리'를 해낸 날이라서 다양한 오류를 내고 캡처하길 반복했다. 매일 여백을 용납할 수 없다는 듯이 줄글로 나열된 오류 메시지가 깔끔하게 두 줄로 정리되니 속이 다 시원했다.'401 Unauthorized' 오류는 작성해..

Spring 본캠프 Day 071 - 2단계 및 3단계 일정 관리 앱 Develop 완료, 4단계 진행 중

🥇 @transactional 어노테이션(annotation) 복습하기 ▶ 내용 교차 검증 완료, 트러블슈팅(troubleshooting)에 기록 예정 🥈 '일정 목록이나 단건을 조회할 때 사용자의 Id도 같이 보여주면 어떨까?' 고민 해결하기 ▶ 사용자의 Id뿐만 아니라 비밀번호를 제외한 정보까지 응답으로 전달할 수 있도록 코드 수정 완료 🥉 "Query did not return a unique result" 오류 제대로 해결했는지 튜터님께 검사받기 ▶ 사용자의 이름 대신 Id로 정보를 조회하여 동명이인 문제 해결 완료 4️⃣ ERD(Entity Relationship Diagram) 작성 시 참조하는 객체는 어떻게 명시해야 하는지 알아 오기 ▶ 외래 키(Foreign Key)를 ERD 안에 적..

Spring 본캠프 Day 070 - 2단계 일정 관리 앱 Develop 진행 중

내용 정리를 틀리게 할 수 없어서 비공개로 돌린 트러블슈팅(troubleshooting)만 벌써 두 개째다. 아직 오류가 발생할 때면 '이번엔 또 뭘 잘못 입력했을까?' 온갖 생각이 들곤 하지만, 확실히 오류를 다양하게 내고 나니 비슷하거나 동일한 오류가 발생하면 금방 해결했다. 마치 오답 노트에 정리한 수학 문제를 다시 풀면 맞출 수 있듯이. 모든 오류의 원인과 해결 방법을 머릿속에 차곡차곡 정리해 두면 정말 좋겠지만, 기억 용량에는 한계가 있기 마련이므로 문제 해결 과정 기록에정성을 쏟았다. 그래, 오류의 가호도 제대로 받았겠다.  난생처음 보는 오류를 많이 내야겠다. 몸이 평일 내내 부족한 잠을 주말 동안 보충할 생각이었는지 오늘도 한낮에 일어났다. 내일부터 다시 아침 8시 전에 일어나고 싶은지라..

2단계: "MySQL Error 1049: Unknown database"

[인용 및 참고 자료 출처]1. 구글 검색: 티스토리, "spring.jpa.hibernate.ddl-auto=create", ddl-auto 설정 시 주의 사항, (2024.12.15) [문제]이젠 프로그램을 실행할 때 오류가 안 나면 이상할 지경이다. 데이터베이스(database)를 제대로 생성한 줄 알았는데 아니었다. 오류 메시지를 볼 때마다 심장은 아직 철렁거리긴 하나, 이미 전날 새벽에 데이터베이스와 씨름한 전적이 있는지라 담담한 마음으로 데이터베이스를 확인했다. [원인]오류가 발생한 원인은 역시나, 데이터베이스가 이상하게 만들어진 데에 있었다. plans2라는 이름으로 데이터베이스를 만든 줄 알았는데 테이블로 생성되어야 할 'members2'가 데이터베이스로 있었다. [해결]문제는 금방 해결했..