[댓글 CRUD 만들기] 14장 | 댓글 엔티티와 리포지토리 만들기
·
CS/스프링부트3 자바 백엔드 개발 입문
게시판에 댓글을 생성, 조회, 수정, 삭제하는 댓글 CRUD 기능을 구현한다. 14.1 댓글 기능의 개요14.1.1 댓글과 게시글의 관계one-to-many(일대다) 관계: 하나의 게시글에 여러 댓글이 달린다. (댓글 입장에서는 다대일) article 테이블과 comment 테이블📍article테이블📍comment 테이블➡️ article 테이블과 comment 테이블이 id 기준으로 관계를 맺고 있다. 대표키(PK, Primary Key, 기본키): 자신을 대표하는 id처럼 자신을 대표하는 속성대표키는 동일 테이블 내 중복값이 없어야 함외래키(FK, Foreign Key): 연관 대상을 가리키는 속성comment 테이블에는 연관 대상을 가리키는 article_id가 더 있다. 외래키를 따라가면 해당..
[NLP] 한국어 형태소 분석기 Kiwi
·
CS/개발
🔗 깃허브https://github.com/bab2min/Kiwi GitHub - bab2min/Kiwi: Kiwi(지능형 한국어 형태소 분석기)Kiwi(지능형 한국어 형태소 분석기). Contribute to bab2min/Kiwi development by creating an account on GitHub.github.com🔗 Kiwipiepy Docshttps://bab2min.github.io/kiwipiepy/v0.15.2/kr/ kiwipiepy API documentation (v0.15.2)Package kiwipiepy Kiwipiepy란? Kiwipiepy는 한국어 형태소 분석기인 Kiwi(Korean Intelligent Word Identifier)의 Python 모듈입니다...
[REST API와 테스트 코드 작성하기] 13장 | 테스트 코드 작성하기
·
CS/스프링부트3 자바 백엔드 개발 입문
코드 수정 시 문제가 발생하므로 서비스 계층 동작 검증을 자동화 하기 위한 테스트 코드 작성법13.1 테스트란프로그램의 품질을 검증하는 것으로, 의도대로 프로그램이 잘 동작하는지 확인하는 과정테스트 도구 활용해 코드를 검증하기 = 테스트 코드(test code) 작성해 실행하기📍테스트 코드 작성법예상 데이터 작성하기실제 데이터 획득하기예상 데이터와 실제 데이터 비교해 검증하기✅ 작성한 코드가 테스트 통과 시 지속적인 리팩토링으로 코드 개선❎ 테스트 통과 못하면 디버깅(debugging)해서 잘못된 부분을 고치기 테스트 코드로 다양한 테스트 케이스를 작성성공하는 경우와 실패하는 경우 모두 고려성공1, 성공2,,, 실패1, 실패2,,, 와 같이 다양한 상황을 예상해 세부적으로 작성테스트 주도 개발(TDD,..
[REST API와 테스트 코드 작성하기] 12장 | 서비스 계층과 트랜잭션
·
CS/스프링부트3 자바 백엔드 개발 입문
REST API에 서비스 계층을 추가해보고 문제 생기면 트랜잭션을 이용해 롤백하는 방법 알아보기12. 1 서비스와 트랜잭션의 개념✔️ 서비스(service)컨트롤러와 리포지토리 사이에 위치하는 계층으로, 서버의 핵심 기능(비즈니스 로직)을 처리하는 순서 총괄 ✔️ 트랜잭션(transaction) 모두 성공해야 하는 일련의 과정; 트랜잭션 단위로 서비스 업무 처리 진행e.g. 식당 예약에서 결제를 실패하면 이전까지 진행해도 모두 취소되어야 한다. -> 트랜잭션트랜잭션이 실패로 돌아갈 경우 진행 초기로 돌리는 것이 롤백(rollback)!  REST 컨트롤러로 서비스 컨트롤러 확인하기// 컨트롤러 역할: 클라이언트 요청받기@PatchMapping("/api/articles/{id}")public Respon..
테스트 프레임워크와 Pytest 알아보기
·
CS/개발
📌 테스트 프레임워크소프트웨어가 원하는 대로 동작하는지 검증하기 위해 테스트 코드 작성, 실행, 관리 자동화하는 도구 및 라이브러리 집합테스트를 일관되고 반복적으로 실행할 수 있다. 테스트 케이스를 자동으로 찾아 실행 후 보고여러 테스트 케이스를 체계적으로 관리, 공통 환경 설정을 제공하는 Fixture기능 제공오류 진단 및 디버깅 지원코드 수정 후 자동 테스트 실행해 기존 기능에 문제 일으키지 않도록 해줌➡️ JUnit(Java), pytest(python) 등📌 Pytestpython에서 가장 많이 사용되는 테스트 프레임워크 중 하나단위 테스트(unit testing)통합 테스트(integration testing)✔️ 주요 특징간편한 테스트 작성: 테스트 함수나 테스트 클래스 이름의 프리픽스(p..
[REST API와 테스트 코드 작성하기] 11장 | HTTP와 REST 컨트롤러
·
CS/스프링부트3 자바 백엔드 개발 입문
게시판 데이터를 CRUD 하기 위한 REST API 구현하기11.1 REST API의 동작 이해하기요청 메세지요청 라인: PATCH /posts/1 HTTP/1.1헤더본문응답 메세지상태 라인: HTTP/1.1 200헤더본문REST API 응답 표준으로 사용하는 JSON은 키와 값의 쌍으로 된 속성으로 데이터를 표현한다. JSON 값으로 또 다른 JSON 데이터나 배열을 넣을 수도 있다. REST: HTTP URL로 서버의 자원을 명시하고, HTTP 메서드로 해당 자원에 대해 CRUD 하는 것API: 클라이언트가 서버의 자원을 요청할 수 있도록 서버에서 제공하는 인터페이스11.2 REST API의 구현 과정REST API 구현을 위해서는 REST API의 주소인 URL을 설계해야 한다. 1️⃣ 게시판의 A..
[REST API와 테스트 코드 작성하기] 10장 | REST API와 JSON
·
CS/스프링부트3 자바 백엔드 개발 입문
웹 브라우저뿐만 아니라 다른 기기에서도 정보를 요청하고 응답할 수 있게 하는 REST API와 JSON에 관해 알아보기10.1 REST API와 JSON의 등장 배경웹 서비스를 사용하는 클라이언트: 웹 브라우저, 스마트폰, 스마트워치, 테블릿 등서버: 어떤 기기가 와도 기기에 맞는 뷰 페이지를 응답해야 한다 ➡️ REST API 사용하기API(Application Programming Interface): 애플리케이션을 간편히 사용할 수 있게 하는 미리 정해진 약속자판기) 버튼이 하나의 API인데 콜라 버튼을 누르면 콜라가, 사이다 버튼을 누르면 사이다가 나오는 것 - 버튼에 따라 반환될 음료를 미리 약속한 셈윈도우 API: 윈도우 개발을 위해 미리 정해진 약속자바 API: 자바 개발을 위해 미리 만들어..
[게시판 CRUD 만들기] 9장 | CRUD와 SQL 쿼리 종합
·
CS/스프링부트3 자바 백엔드 개발 입문
9.1 JPA 로깅 설정하기서버에서 데이터의 생성, 조회, 수정, 삭제 등을 요청 ➡️ JPA의 리포지토리가 DB에 해당 요청 전달요청을 받은 DB는 자신의 언어인 SQL로 쿼리를 작성해 테이블 속 데이터를 관리✔️ 쿼리(query): DB에 정보를 요청하는 구문생성: INSERT조회: SELECT수정: UPDATE삭제: DELETECRUD 수행에 따른 DB의 SQL 쿼리 분석하기 위해서는 resources > application.properties에서 JPA 로깅 설정을 해야 한다.✔️ 로깅(logging): 시스템이 작동할 때 당시의 상태와 작동 정보를 기록하는 것레벨1 TRACE: DEBUG보다 상세한 정보레벨2 DEBUG: 응용 프로그램을 디버깅하는 데 필요한 세부 정보레벨3 INFO: 응용 프..
[게시판 CRUD 만들기] 8장 | 게시글 삭제하기: Delete
·
CS/스프링부트3 자바 백엔드 개발 입문
8.1 데이터 삭제 과정클라이언트가 HTTP 메서드로 특정 게시글의 삭제 요청삭제 요청을 받은 컨트롤러는 리포지토리를 통해 DB에 저장된 데이터를 찾아 삭제기존 데이터가 있을 경우에만 수행삭제가 완료됐다면 클라이언트를 결과 페이지로 리다이렉트결과 페이지로 리다이렉트 시 RedirectAttributes 클래스 이용해 삭제 완료 메세지도 함께 띄워주기RedirectAttributes 객체의 addFlashAttribute() 메서드 : 리다이렉트된 페이지에서 사용할 일회성 데이터 등록8.2 데이터 삭제하기8.2.1 Delete 버튼 추가하기Delete 버튼을 상세 페이지에 추가하려고 show.mustache 파일에 코드 작성하기Delete8.2.2 Delete 요청을 받아 데이터 삭제하기Delete 요청을..
[혼공학습단 13기] 완주 회고
·
CS/혼자 공부하는 컴퓨터 구조 + 운영체제
드디어 혼공학습단 13기가 끝이났다..! 이걸 신청할 때만 해도 2024년 12월 말이었는데 지금은 벌써 2025년 2월 말이다. 시간이 진짜 너무 빠른 것 같다. 위의 사진은 혼공학습단을 관리하시는 혼공족장님께서 올려주신 사진인데 인상깊어서 가져와봤다. 올해는 이 사진처럼 한꺼번에 많이가 아니라 내가 할 수 있는 한 꾸준히 공부하는 해가 되었으면 좋겠다. 나는 성향상 걱정이 많고 내 노력을 쓸데없는 데 쓰기 싫어 뭔가 시작할 때 상황이나 여건이 완벽해야만 시도해보았는데 올해는 완벽하지 않아도 조금씩이라도 뭔가를 시작해보고 싶다. 애초에 저런 생각 자체를 떨쳐내야 한다고 생각한다. 세상에 완벽한건 없따!! 다른분들도 아 제대로 못할것같은데.. 생각이 들더라도 조금의 여유가 있다면 여름에 혼공학습단 14기..