전체 글(151)
-
간단한 API를 직접 만들어보자(6) -댓글이 있는 카드 삭제하기-
✔오늘 배운 중요한 🔑 point@OnDelete 어노테이션은 부모 엔티티가 삭제될때 자식엔티티를 어떻게 처리할까를 지정할때 사용한다@OnDelete(action= OnDeleteAction.CASCADE) 를 사용하면 부모 엔티티가 삭제될때 자식엔티티도 같이 삭제된다🎯 오늘 배운 내용 댓글이 달려있는 카드 삭제시 오류 발생!!!!댓글이 달려있는 카드를 삭제를 할려고 시도하면은 오류가 발생한다!! org.postgresql.util.PSQLException: ERROR: update or delete on table "card" violates foreign key constraint "fkqgv5aujiclf0iihwxf4gmkf18" on table "comment"오류 메시지에 따르면, Car..
2024.05.24 -
간단한 API를 직접 만들어보자 (5) -환경변수 활용 및 댓글 기능 추가-
✔오늘 배운 중요한 🔑 point데이터베이스의 PASSWORD같은 중요한 정보들은 환경변수를 활용해서 숨길 수 있다새로운 기능을 추가할때 기존의 Controller와 Service 로직에 추가를 하는것보다 새로운 Controller와 Service를 작성하는 것이 더 모듈화 되고 깔끔해지기도 하니 이를 잘 선택해야한다.🎯 오늘 배운 내용 환경변수 활용환경변수로 중요한 보안정보를 숨기자현재 application.yml 파일안에 중요한 정보들이 들어가 있는 상태인데 GitHub에 코드를 공유할경우에 보안 문제가 발생할 수 있으니 이를 환경변수로 감추어보자 Edit Configuraton 클릭 Modify Option -> Envirionment variables 클릭 환경변수 설정 DB_URL=DB의..
2024.05.23 -
인증
✔오늘 배운 중요한 🔑 point쿠키/세션 인증 방식은 서버와 클라이언트가 서로 암구호를 정한 것 , 따라서 서버가 A 서버에 세션ID를 부여받을 경우 B서버에서는 해당 세션ID가 존재하지 않기때문에 ERROR를 응답한다. 따라서 여러대일 경우에는 인증이 안되는 확장성 문제가 있다.토큰 인증 방식은 서버가 클라이언트에게 출입증을 발급해주는것, 출입증은 데이터의 사이즈가 크기 때문에 인증 요청이 많아지면 네트워크 부하가 발생할 수 있다.토큰 인증 방식중 JWT(JSON Web Token) 방식을 가장 많이 사용하며 Header와 Payload 부분이 JSON으로 이루어져 있다🎯 오늘 배운 내용 인증?지금 현재 진행하고 있는 프로젝트에서는 회원가입에 대한 기능만 구현되어 있고 로그인 로그아웃에 대한 기능..
2024.05.22 -
간단한 API를 직접 만들어보자(4) Status code 500 해결
✔오늘 배운 중요한 🔑 point오류가 발생하면 콘솔창을 확인해서 오류가 난 부분을 확인해보자JPA Entity 클래스는 기본생정자를 필요로하기 때문에 build.gradle.kts에 no-Arg플러그인과 allOpen 플러그인을 추가해주면 된다.🎯 오늘 배운 내용 지난번 간단한 API작성 중 발견한 ERROR : STATUS CODE 500 status code 500 에러는 서버에 접속을했을때 발생하는 오류이므로 작성중인 코드를 살펴볼 필요가 있다 [ERROR: relation "card" does not exist실행된 콘솔창을 보면 어떤 오류가 발생했는지가 나오는데 현재 "card"라는 부분에서 오류가 난것을 확인할수 있다 그리고 직접적으로 어느 부분에서 오류가 발생했는지를 확인할 수 있다...
2024.05.21 -
JPA
✔오늘 배운 중요한 🔑 point백엔드에서 API를 설계하여 데이터들을 DATABASE에 저장할때 따로 SQL쿼리문, SELECT나 INSERT등의 명령어를 사용하지 않았는데, 이러한 SQL쿼리를 작성하지 않아도 데이터베이스를 다룰 수 있게 해주는 것이 바로 ORM이고 그 ORM의 한 종류가 JPA이다 !!!!간단한 CRUD의 경우 ORM을 사용하면 매우 편리하지만 WHERE절이나 서브쿼리 등등 복잡한 기능을 사용하는 경우에는 직접 SQL을 작성하는 것이 더 효율적이다 JDBC는 SQL쿼리를 이용해서 데이터베이스와 통신을 하는 매우 낮은 수준의 API이기때문에 JPA와 Hibernate를 사용하는 것이며, JPA는 SQL쿼리를 직접적으로 사용하지 않고 데이터베이스 작업을 처리할 수 있게 하는 API..
2024.05.20 -
(SQL) 식품 종류별 비싼 식품 정보 조회하기
신나는 주말!주말에는 간단한 SQL 문제를 풀어보자! 🔥SQL 문제 FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요. 입출력 예CATEGORYMAX_PRICEPRODUCT_NAME식용유6500[5, 10]과자1800[1, 2, 3, 36] 내가 작성한 코드 PRICE기준의 쿼리 생성SELECT *FROM FOOD_PRODUCTHAVING CATEGORY = '국' OR CATEGORY = '김치' OR CATEGORY = '식용유' OR CATEGORY='과자'ORDER BY PRI..
2024.05.19