📁 프로젝트 일지
-
🦮 스스로를 위한 리팩토링 일지 가이드 1️⃣ 리팩토링 이전 코드는 어떠했는가 2️⃣ 어떻게 리팩토링하였는가 3️⃣ 리팩토링 이후 코드는 어떻게 개선되었는가 1️⃣ 리팩토링 이전 코드는 어떠했는가 ✅ 문제점1 REST API를 처음 공부하고 사용해 보면서 나와 팀원이 설계 규칙을 제대로 지키지 못한 부분이 보였다. 또한 팀원과 각각 회원 관리, 댓글 기능에만 REST API를 적용하고 다른 부분에는 적용하지 않았는데, 이 부분이 통일성이 없어 코드 가독성을 저하한다. ✅ 문제점2 LoginChk 컨트롤러 클래스와 MemberController 클래스에서, 로그인/로그아웃 처리 메소드들은 MemberController 클래스에, 회원 가입/정보 수정/탈퇴 메소드들은 LoginChk 클래스에 적혀 있었다. ..
15.코드 리팩토링(2) - RESTful한 API 만들기(1) / 클래스 목적에 맞게 수정하기🦮 스스로를 위한 리팩토링 일지 가이드 1️⃣ 리팩토링 이전 코드는 어떠했는가 2️⃣ 어떻게 리팩토링하였는가 3️⃣ 리팩토링 이후 코드는 어떻게 개선되었는가 1️⃣ 리팩토링 이전 코드는 어떠했는가 ✅ 문제점1 REST API를 처음 공부하고 사용해 보면서 나와 팀원이 설계 규칙을 제대로 지키지 못한 부분이 보였다. 또한 팀원과 각각 회원 관리, 댓글 기능에만 REST API를 적용하고 다른 부분에는 적용하지 않았는데, 이 부분이 통일성이 없어 코드 가독성을 저하한다. ✅ 문제점2 LoginChk 컨트롤러 클래스와 MemberController 클래스에서, 로그인/로그아웃 처리 메소드들은 MemberController 클래스에, 회원 가입/정보 수정/탈퇴 메소드들은 LoginChk 클래스에 적혀 있었다. ..
2024.03.20 -
🦮 스스로를 위한 리팩토링 일지 가이드 1️⃣ 리팩토링 이전 코드는 어떠했는가 2️⃣ 어떻게 리팩토링하였는가 3️⃣ 리팩토링 이후 코드는 어떻게 개선되었는가 1️⃣ 리팩토링 이전 코드는 어떠했는가 지저분하고 가독성이 좋지 않은 코드의 가장 큰 이유 중 하나는 '꼭 필요하지 않은 부분' 때문이라고 생각한다. 프로젝트 코드를 몇 군데 살펴보니 기능 구현에 급급해 필요없는 부분을 정리하지 못한 부분이 많이 보였다. 따라서 다음과 같은 부분들을 우선 정리했다. 1.사용하지 않는 파일/클래스 2.사용하지 않는 주석 3.사용하지 않는 로직 2️⃣ 어떻게 리팩토링하였는가 ✅ 사용하지 않는 파일/클래스 전자정부 프레임워크에 처음 DB를 연동할 당시 테스트를 위해 만들어 놓았던 테스트 VO, mapper들 구조 파악에 ..
14.코드 리팩토링(1) - 불필요한 부분 삭제하기🦮 스스로를 위한 리팩토링 일지 가이드 1️⃣ 리팩토링 이전 코드는 어떠했는가 2️⃣ 어떻게 리팩토링하였는가 3️⃣ 리팩토링 이후 코드는 어떻게 개선되었는가 1️⃣ 리팩토링 이전 코드는 어떠했는가 지저분하고 가독성이 좋지 않은 코드의 가장 큰 이유 중 하나는 '꼭 필요하지 않은 부분' 때문이라고 생각한다. 프로젝트 코드를 몇 군데 살펴보니 기능 구현에 급급해 필요없는 부분을 정리하지 못한 부분이 많이 보였다. 따라서 다음과 같은 부분들을 우선 정리했다. 1.사용하지 않는 파일/클래스 2.사용하지 않는 주석 3.사용하지 않는 로직 2️⃣ 어떻게 리팩토링하였는가 ✅ 사용하지 않는 파일/클래스 전자정부 프레임워크에 처음 DB를 연동할 당시 테스트를 위해 만들어 놓았던 테스트 VO, mapper들 구조 파악에 ..
2024.03.19 -
✅ 서론 https://hyewonkim1996.tistory.com/54 카카오 로그인 API (1) - 자바스크립트에 API 가져오기 1️⃣ 카카오 developers에서 애플리케이션 추가 링크 접속 👉 애플리케이션 추가하기 👉 정보 입력 👉 저장 https://developers.kakao.com/console/app 2️⃣ 메뉴 - 카카오 로그인 설정 생성한 애플리케이션 hyewonkim1996.tistory.com 지난번 자바스크립트에 카카오 API를 불러오는 과정까지 마쳤다. API를 가져왔으면 이제 간편 가입과 로그인 기능을 구현해야 하는데, 문제가 있다. 카카오 심사를 거친 기업이 아니면 카카오 간편 가입 기능을 갖다 쓸 수 없다. 즉, 내가 알아서 구현해야 한다는 것. 자, 간편 가입/로..
카카오 로그인 API (2) - 간편 가입/로그인 기능 구현하기✅ 서론 https://hyewonkim1996.tistory.com/54 카카오 로그인 API (1) - 자바스크립트에 API 가져오기 1️⃣ 카카오 developers에서 애플리케이션 추가 링크 접속 👉 애플리케이션 추가하기 👉 정보 입력 👉 저장 https://developers.kakao.com/console/app 2️⃣ 메뉴 - 카카오 로그인 설정 생성한 애플리케이션 hyewonkim1996.tistory.com 지난번 자바스크립트에 카카오 API를 불러오는 과정까지 마쳤다. API를 가져왔으면 이제 간편 가입과 로그인 기능을 구현해야 하는데, 문제가 있다. 카카오 심사를 거친 기업이 아니면 카카오 간편 가입 기능을 갖다 쓸 수 없다. 즉, 내가 알아서 구현해야 한다는 것. 자, 간편 가입/로..
2024.03.13 -
1️⃣ 카카오 developers에서 애플리케이션 추가 링크 접속 👉 애플리케이션 추가하기 👉 정보 입력 👉 저장 https://developers.kakao.com/console/app 2️⃣ 메뉴 - 카카오 로그인 설정 생성한 애플리케이션 클릭 👉 메뉴에서 카카오 로그인 클릭 👉 활성화 설정 ON 👉 Redirect URI 등록 👉 localhost로 설정 3️⃣ 메뉴 - 플랫폼 설정 메뉴에서 플랫폼 클릭 👉 Web 플랫폼 등록 👉 localhost 설정 저장 4️⃣ 메뉴 - 동의 항목 설정 메뉴에서 동의항목 클릭 👉 개인정보와 접근 항목에서 원하는 설정 클릭(닉네임, 프사는 필수) 👉 동의 단계 선택, 목적 작성 후 저장 5️⃣ 메뉴 - 앱 키에서 키 복사 메뉴에서 앱 키 클릭 👉 js 키 복사 6..
카카오 로그인 API (1) - 자바스크립트에 API 가져오기1️⃣ 카카오 developers에서 애플리케이션 추가 링크 접속 👉 애플리케이션 추가하기 👉 정보 입력 👉 저장 https://developers.kakao.com/console/app 2️⃣ 메뉴 - 카카오 로그인 설정 생성한 애플리케이션 클릭 👉 메뉴에서 카카오 로그인 클릭 👉 활성화 설정 ON 👉 Redirect URI 등록 👉 localhost로 설정 3️⃣ 메뉴 - 플랫폼 설정 메뉴에서 플랫폼 클릭 👉 Web 플랫폼 등록 👉 localhost 설정 저장 4️⃣ 메뉴 - 동의 항목 설정 메뉴에서 동의항목 클릭 👉 개인정보와 접근 항목에서 원하는 설정 클릭(닉네임, 프사는 필수) 👉 동의 단계 선택, 목적 작성 후 저장 5️⃣ 메뉴 - 앱 키에서 키 복사 메뉴에서 앱 키 클릭 👉 js 키 복사 6..
2024.03.12 -
🦮 스스로를 위한 프로젝트 일지 가이드 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 2️⃣ 어떤 문제가 생겼고, 어떻게 해결하였는가 3️⃣ 프로젝트를 되짚어보며 개선할 점이 있는가 ✅ 메인 화면 메인 화면 디자인은 팀원과 반씩 나눠서 했고 내가 튜닝한 부분은 위와 같다. 로고는 팀원이 찾아낸 '길벗'이라는 사이트에서 만들었다. 일단 내가 전체적인 홈페이지 틀과 슬라이드 쇼가 포함된 HTML 템플릿을 구글링하여 가져와 위 사진처럼 튜닝했고, 팀원은 틀 중에서 다른 부분을 마저 튜닝했다. 로그인 폼은 내가 따로 구글링해서 가져와 튜닝했다. 아이콘 메뉴 같은 경우 아이콘 사이트에서 가져왔고, 하단 배너의 경우 이미지를 하나씩 구해 버튼에 반영해 만들었다. 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 홈..
13.화면 디자인🦮 스스로를 위한 프로젝트 일지 가이드 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 2️⃣ 어떤 문제가 생겼고, 어떻게 해결하였는가 3️⃣ 프로젝트를 되짚어보며 개선할 점이 있는가 ✅ 메인 화면 메인 화면 디자인은 팀원과 반씩 나눠서 했고 내가 튜닝한 부분은 위와 같다. 로고는 팀원이 찾아낸 '길벗'이라는 사이트에서 만들었다. 일단 내가 전체적인 홈페이지 틀과 슬라이드 쇼가 포함된 HTML 템플릿을 구글링하여 가져와 위 사진처럼 튜닝했고, 팀원은 틀 중에서 다른 부분을 마저 튜닝했다. 로그인 폼은 내가 따로 구글링해서 가져와 튜닝했다. 아이콘 메뉴 같은 경우 아이콘 사이트에서 가져왔고, 하단 배너의 경우 이미지를 하나씩 구해 버튼에 반영해 만들었다. 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 홈..
2024.03.11 -
🦮 스스로를 위한 프로젝트 일지 가이드 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 2️⃣ 어떤 문제가 생겼고, 어떻게 해결하였는가 3️⃣ 프로젝트를 되짚어보며 개선할 점이 있는가 ✅ 회원 정보 수정 회원가입 시 회원 정보로 입력한 이름, 연락처, 비밀번호를 수정할 수 있도록 했다. 카카오 회원의 경우 비밀번호는 수정할 수 없게 했다. 수정 시 각 정보에 관해 실시간으로 안내 문구가 뜨고 최종적으로 수정 버튼을 누를 때도 유효성 검사를 진행했다. 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 회원가입이랑 비슷하게 조건을 만족한 데이터만 통과시켜 수정해야 했기 때문에 회원가입과 비슷하게 진행했다. 카카오 회원의 경우 임시 비밀번호로 통일했기 때문에 해당 비밀번호가 바뀌면 로그인이 안 되므로 수정하지 ..
12.기능 구현(9) - 회원 정보 수정🦮 스스로를 위한 프로젝트 일지 가이드 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 2️⃣ 어떤 문제가 생겼고, 어떻게 해결하였는가 3️⃣ 프로젝트를 되짚어보며 개선할 점이 있는가 ✅ 회원 정보 수정 회원가입 시 회원 정보로 입력한 이름, 연락처, 비밀번호를 수정할 수 있도록 했다. 카카오 회원의 경우 비밀번호는 수정할 수 없게 했다. 수정 시 각 정보에 관해 실시간으로 안내 문구가 뜨고 최종적으로 수정 버튼을 누를 때도 유효성 검사를 진행했다. 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 회원가입이랑 비슷하게 조건을 만족한 데이터만 통과시켜 수정해야 했기 때문에 회원가입과 비슷하게 진행했다. 카카오 회원의 경우 임시 비밀번호로 통일했기 때문에 해당 비밀번호가 바뀌면 로그인이 안 되므로 수정하지 ..
2024.03.09 -
🦮 스스로를 위한 프로젝트 일지 가이드 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 2️⃣ 어떤 문제가 생겼고, 어떻게 해결하였는가 3️⃣ 프로젝트를 되짚어보며 개선할 점이 있는가 ✅ 글번호 관리 수강 후기 게시판 목록 조회 구현 시 글번호를 원래는 후기 테이블에서 시퀀스로 설정하던 '리뷰 번호' 컬럼을 이용했다. 이후 DB 컬럼을 그대로 반영하는 방식보다 jsp 파일에서 자체적으로 번호를 만들어 반영했다. 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 시퀀스로 생성되는 컬럼의 문제는 중간 글, 예를 들어 1번과 3번 사이 2번 글이 삭제된다면 기존 3번이 2번으로 자동 정렬되지 않고 그대로 3번으로 남아있다는 것이다. 만약 중간 글들이 여러 개 삭제된다면 글 번호는 그야말로 개판이 된다. 이렇게 ..
11.기능 구현(8) - 수강 후기 게시판(글번호 관리, 아이디 마스킹, 페이징)🦮 스스로를 위한 프로젝트 일지 가이드 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 2️⃣ 어떤 문제가 생겼고, 어떻게 해결하였는가 3️⃣ 프로젝트를 되짚어보며 개선할 점이 있는가 ✅ 글번호 관리 수강 후기 게시판 목록 조회 구현 시 글번호를 원래는 후기 테이블에서 시퀀스로 설정하던 '리뷰 번호' 컬럼을 이용했다. 이후 DB 컬럼을 그대로 반영하는 방식보다 jsp 파일에서 자체적으로 번호를 만들어 반영했다. 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 시퀀스로 생성되는 컬럼의 문제는 중간 글, 예를 들어 1번과 3번 사이 2번 글이 삭제된다면 기존 3번이 2번으로 자동 정렬되지 않고 그대로 3번으로 남아있다는 것이다. 만약 중간 글들이 여러 개 삭제된다면 글 번호는 그야말로 개판이 된다. 이렇게 ..
2024.03.08 -
🦮 스스로를 위한 프로젝트 일지 가이드 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 2️⃣ 어떤 문제가 생겼고, 어떻게 해결하였는가 3️⃣ 프로젝트를 되짚어보며 개선할 점이 있는가 ✅ 파일 업로드 수강 후기 게시판 CRUD 구현 시 파일 업로드 기술을 사용했다. C드라이브의 임시 폴더를 경로로 설정해 파일이 저장되도록 하였고 저장되는 과정에서 파일명을 랜덤으로 변경해 저장했다. 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 파일명을 랜덤으로 생성하지 않으면 파일명이 중복되어 저장될 수 있기 때문이다. 2️⃣ 어떤 문제가 생겼고, 어떻게 해결하였는가 파일 데이터를 처리하는 컨트롤러의 로직이 실행되어야 하는데 자꾸 안되는 오류가 발생했다. 어떤 부분에서 막히는지 디버깅해본 결과 VO에 아예 매핑이 안되..
10.기능 구현(7) - 수강 후기 게시판(파일 업로드/다운로드)🦮 스스로를 위한 프로젝트 일지 가이드 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 2️⃣ 어떤 문제가 생겼고, 어떻게 해결하였는가 3️⃣ 프로젝트를 되짚어보며 개선할 점이 있는가 ✅ 파일 업로드 수강 후기 게시판 CRUD 구현 시 파일 업로드 기술을 사용했다. C드라이브의 임시 폴더를 경로로 설정해 파일이 저장되도록 하였고 저장되는 과정에서 파일명을 랜덤으로 변경해 저장했다. 1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가 파일명을 랜덤으로 생성하지 않으면 파일명이 중복되어 저장될 수 있기 때문이다. 2️⃣ 어떤 문제가 생겼고, 어떻게 해결하였는가 파일 데이터를 처리하는 컨트롤러의 로직이 실행되어야 하는데 자꾸 안되는 오류가 발생했다. 어떤 부분에서 막히는지 디버깅해본 결과 VO에 아예 매핑이 안되..
2024.03.06