본문 바로가기

공부

(113)
[Spring] Entity 연관관계 Entity들은 서로 연관관계를 갖는다. 음식 주문 앱을 만든다고 생각하면서 공부해보자. [DB 연관관계] 고객 id 고객 이름 1 태호 2 용석 음식 id 음식 이름 음식 가격 1 양념치킨 18000 2 후라이드치킨 17000 3 감자피자 17000 4 비싼피자 25000 고객 데이터 베이스와 음식 데이터베이스가 있다. 이떄 고객과 음식은 서로 N대M의 관계를 갖고있다고 할 수 있다. 한명의 고객이 N개의 음식을 주문할 수 있고, 한개의 음식이 N명의 고객으로부터 주문을 당할 수 있기 때문.이를 우리는 N대M의 관계를 갖는다고 표현한다. 그렇다면 이를 DB에 반영하게 되면 어떻게 반영을 해야 할까? 고객인 태호가 후라이드 치킨, 양념 치킨을 주문 한다고 하면 주문 내역은 어디로 들어가면 좋을까? 고객 ..
23.11.14 드디어 Spring으로 CRUD를 만들었다. [Create] POST 매핑된 createCare()메서드. @RequestBody 어노테이션으로 body에 JSON형식으로 데이터를 받아온다. @PostMapping("/create") public CardResponseDto createCard(@RequestBody CardRequestDto cardRequestDto){ return cardService.createCard(cardRequestDto); } JpaRepository를 사용하면 간단히 save를 할 수 있다. public CardResponseDto createCard(CardRequestDto cardRequestDto) { Card reqCard = new Card(cardReques..
[Spring] DB 연결 실패 진짜 개멍청이다. DB에 왜 데이터가 들어가지 않을까? 이걸 몰랐다.. 이유는! spring.datasource.url=jdbc:mysql://localhost:3306/todolist 여기 마지막 경로가 잘못됐었다.. 진짜 기본도 안된 상태로 DB를 쓰려니 이런 어처구니 없는 실수에 시간을 자꾸 뺏긴다. 그래도 이번에 확실히 알았으니 다행. 샤라웃 투 규정님.(보자마자 이거 바로 아셨다. 역시 개고수)
[Spring] 406, 500 에러 트러블 슈팅 기본 crud를 구현하고 있었다. 포스트맨을 통해 JSON형식으로 값을 보내는 형식으로 테스트 중. 그중 500번 오류가 났다. 500번 오류는 서버단에서 나는 오류.(아 스크린샷을 못찍었다..) 내가 만났던 오류는 데이터베이스의 칼럼 중 DATE는 "NULL"이여선 안된다 라는 것. 이 오류가 났던 이유는 내가 ENTITY에 DATE값을 NULLABLE = FALSE를 해놓고 넣을 줄을 몰라서 엉뚱하게 넣었고, 그 이유로 NULL값이 들어갔기 때문. 해결방법은 package com.example.to_do_list.entity; import jakarta.persistence.*; import lombok.Getter; import org.springframework.cglib.core.Local; i..
[Java] Optional을 쓰는 이유 Optional 클래스는 NPE를 방지하기 위해 사용되는 클래스. 지난 과제에서 NPE가 발생해서 결국 잡지 못하고 실패를 했기에 너무 반가운 기능! Optional은 Null일 수 도 있는 개체를 감싸주는 Wrapper 클래스이다. 반환값이 객체인 메서드를 호출하고 받는 반환값이 Null일 경우 NPE(NullPointExcepetion)이 발생하는데 이를 Optional 객체를 감싸서 더욱 쉽게 예외 처리가 가능하다. Optional checkUsername = userRepository.findByUsername(username); if (checkUsername.isPresent()) { throw new IllegalArgumentException("중복된 사용자가 존재합니다."); } 이렇게 ..
23.11.13 오늘은 스프링 숙련주차 강의 복습을 하면서 Spring Security에 대해서 복습했다. https://taeho-fighting.tistory.com/46 Optional에 대해 약간의 공부를 했다. https://taeho-fighting.tistory.com/48 정말 바보같은 트러블 슈팅을 함(Bean에 대해 잘못 이해해서 객체 생성을 안한채로 베서드를 호출함)
[Spring] Filter의 개념 // 혼자 공부하면서 필기식으로 정리한 글입니다. 진행중인 프로젝트의 방향성에 맞게 필터를 적용했습니다. 필터의 이유 DispatcherServlet이 요청을 받고 각 요청에 맞는 Controller로 요청을 분배할 때 공통적으로 모든 요청에 필요한 기능이 있을 때 DispatcherServlet보다 앞에 있는 Filter가 공통 기능을 수행해줌 Filter 인터페이스를 구현함. doFilter(ServletRequest, ServletResponse, FilterChain)을 인자로 받음 doFilter를 기준으로 전에는 요청쪽, 후쪽은 응답쪽 @Order는 필터의 위치를 지정해줄 수 있음 Filter는 DispatcherServlet보다 앞단에 있어서 쿠키값을 가져오는 메서드를 사용 못 함(@Cook..
23.11.10 오늘은 Bean에 대해 정리해봤다. Bean의 필요성을 잘 이해하지 못했는데 정리하면서 필요성에 대해 다시 깨달았다. https://taeho-fighting.tistory.com/43 [Spring] Bean 스프링에서 Bean이란 스프링 IoC 컨테이너에서 관리하는 자바 객체를 말한다. [스프링 IoC 컨테이너] 제어의 역전을 하기 위해 DI방식으로 기능을 구현한다. 이때 인자로서 객체를 넣어주기 위해 객 taeho-fighting.tistory.com 그리고 본격적인 개인과제의 시작 TO-DO LIST를 작성하는 페이지를 완성하는 것. 요구사항은 다음과 같다. 1. 회원가입 API 2. 로그인 API 3. 할일카드 작성 기능 API 4. 할일카드 조회 기능 API 5. 할일카드 목록 조회 기능 AP..
[Spring] Authentication과 Authorization Authentication과 Authorization에 대해 알아보자. [Authentication] 한국말로 인증이다. 해당 사용자가 우리가 알고있는 사용자인지 확인 하는 것. ex) 로그인, 지문인식 [Authorization] 한국말로 인가. 사용자의 권한에 대한 이야기이다. 관리자인지? 회원인지? 비회원인지?를 가려야 하는 것. 권한에 따라 인가되는 정보가 달라진다. 웹 어플리케이션에서 인증과 인가은 어떻게 이루어질까? [비연결성과 무상태] 웹 서버에서 클라이언트와 서버가 한번 연결 된 후 클라이언트가 연결을 끊기 전까지 둘 사이의 연결은 지속 되지 않는다. 그 이유는 서버에 부담이 많이 가기 때문이다. 실제로 클라이언트와 서버간의 통신은 요청이 들어올 때 응답을 하고 통신을 끊고, 다시 요청이 ..
[Spring] Bean의 쓰임과 수동 등록에 대해 스프링에서 Bean이란 스프링 IoC 컨테이너에서 관리하는 자바 객체를 말한다. [스프링 IoC 컨테이너] 제어의 역전을 하기 위해 DI방식으로 기능을 구현한다. 이때 인자로서 객체를 넣어주기 위해 객체를 생성해야 하는데 Bean으로 등록을 한다면, Spring에서 자체적으로 객체를 생성하고, 관리해서 사용 하는 것. 이때 등록된 Bean들을 모아 놓는 곳이 스프링 IoC 컨테이너이다. 자바에서는 new 키워드를 통해 객체를 생성하지만, Bean을 이용하여 관리한다면 어노테이션을 이용하여 Bean을 등록한다. @Component 키워드를 클래스 구현부에 사용하면 빈으로 등록 할 수 있다. @Component // Bean으로 등록 public class MemoService { ... } Bean을 사용..