본문 바로가기

Self Code Review

(15)
[Spring] Spring 구조와 API 흐름 이해하기2 (스파르타코딩클럽 - 웹개발의 봄, Spring 3주차) { ⭐ 더 정리된 노션 버전 ⭐} 타임라인 서비스로 Spring 구조 이해 API 설계하기 (CRUD) fair-cheetah-80d.notion.site ❗API 설계하기 (CRUD) ✔️ Repository 만들기 domain 패키지 (Repo 영역) 만들기 domain - Memo.java 클래스 생성 package com.sparta.week03.domain; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; @NoArgsConstructor // 기본생성자를 만듭니다. @Getter @Entity // 테이블과 연계됨을 스프링에게 알려줍니다. public class Memo extends Times..
[Spring] Spring 구조와 API 흐름 이해하기1 (스파르타코딩클럽 - 웹개발의 봄, Spring 2주차) { ⭐ 더 정리된 노션 버전 ⭐} week 2 숙제 코드 흐름 이해하기 숙제 설명 fair-cheetah-80d.notion.site ❗Spring의 구조 1.Controller : 가장 바깥 부분, 요청/응답을 처리함. 2. Service : 중간 부분, 실제 중요한 작동이 많이 일어나는 부분 3. Repo : 가장 안쪽 부분, DB와 맞닿아 있음. (Repository, Entity) - 강의에서는 models models - person.java lombok (import도 해주기) person 클래스에 @Getter 적용 (기존 getName, getJob…을 대체함) 생성자 만들기 public Person(PersonRequestDto requestDto) { this.name = request..
[나만의 단어장] 13. 완성 코드 ✅ 최종 코드 깃허브 https://github.com/mingyeong1203/Vocabulary-Notebook GitHub - mingyeong1203/Vocabulary-Notebook: Sparta Coding Club Boot Camp - Web Plus - Vocabulary Notebook Sparta Coding Club Boot Camp - Web Plus - Vocabulary Notebook - GitHub - mingyeong1203/Vocabulary-Notebook: Sparta Coding Club Boot Camp - Web Plus - Vocabulary Notebook github.com ✅ 학습 내용 정리 노션 (블로그 내용이랑 동일) https://fair-cheet..
[나만의 단어장] 12. 숙제 - 예문 저장 & 삭제 기능 만들기 “status_give = old” 일 때만 예문 작성 칸 띄우기 input 박스에 입력된 예문이 해당 단어를 포함하고 있는지 확인 있으면 DB의 examples 컬렉션에 예문 저장. 예문들 중에서 해당 단어에 관한 것만 찾아와서 보여주는 함수를 만들어 페이지 로딩 시, 새 예문 저장 시, 기존 예문 삭제 시 함수 실행. 예문 삭제 시 여러 예문 중 어떤 것인지 구분을 하기 위해 각 줄에 id 부여 단어 삭제 시 해당 예문들도 같이 지워줌. {% if status=="old" %} // Write your own sentences! This sentence contains the word 'word'. delete I don't like using the MS Word program. delete add..
[나만의 단어장] 11. 완성도 높이기 - og태그, favicon ✅ og 태그 Open Graph 태그로 웹페이지의 링크를 공유할 때 나타나는 미리 보기를 설정하는 태그 메타 태그의 종류 중 하나로, ‘제목, 설명, 이미지, 링크, 타입’ 등을 삽입할 수 있음. ✅ favicon 주소창의 즐겨찾기 아이콘 ✅ og태그와 favicon 설정
[나만의 단어장] 10. 목록페이지 - 사전에 없는 단어일 때 ✅ API에서 단어 뜻 찾아서 detail.html로 결과 보내는 서버 함수 內 r = requests.get(f"", headers={"Authorization": "Token [내토큰]"}) result = r.json() print(result) detail.html에 보내지는 result라는 값을 사전 API에서 찾을 수 없어서 ‘정의를 찾을 수 없다’는 메시지 즉, 다른 형태의 데이터를 주기 때문에 처리하지 못해서 에러 발생 ! 이 때 에러를 보여주지 않고 단어 목록 페이지로 리다이렉팅 해야함 ✅ 값을 잘 받아왔을 때의 상태코드가 200이므로 200이 아닐 때 메인페이지로 리다이렉팅 시키고 ‘단어를 찾을 수 없다’는 메시지 남겨주기 if r.status_code != 200: return red..
[나만의 단어장] 9. 목록페이지 - 검색 기능 만들기 단어장에 단어가 있으면 단어장 하이라이트 없으면 사전에 있는 단어이면 상세페이지로 이동 사전에 없는 단어면 ‘없는 단어’ 표시 ✅ 검색을 위해 word 키 값만 모여있는 word_list 만들기 let words = {{ words|tojson }}; //'이 부분은 Html 코드가 아니고 진짜 데이터'라고 말해주기 위해 tojson을 사용 let word_list = []; //딕셔너리에서 단어들만 모으기 위한 list 생성 for (let i = 0; i < words.length; i++) { //words의 길이보다 짧은 동안 반복 word_list.push(words[i]["word"]) //words의 i번째의 word 키 값을 word_list 안에 하나씩 넣음 } tojson 전 tojso..
[나만의 단어장] 8. 목록페이지 - 단어 목록 가져오기 jinja2로 단어 목록 테이블 DB에 저장된 단어 목록을 가져와 테이블을 채움. ✅ app.py - words 컬렉션의 단어들을 가져와 넘겨줌. @app.route('/') def main(): # DB에서 저장된 단어 찾아서 HTML에 나타내기 words = list(db.words.find({}, {"_id": False})) # list 안에 db.words.find로 조건 없는 모든 단어 {}를 찾음. 즉, words는 내 db에 저장된 모든 단어들의 리스트. # _id는 mongodb에서 자동으로 만들어주는 id인데 자료형이 특이해서 _id가 들어있는 리스트를 render_template에 넣으면 에러 발생하기 때문에 False. return render_template("index.html"..