일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 인텔리제이
- jpa회원가입
- @IdClass
- github
- jpa에러
- json gson 차이
- jwt메서드
- uncheck Exception
- 최종 프로젝트
- queryDSL
- JPA
- 스프링 부트 공식 문서
- Filter
- spring서버
- 스프링부트오류
- REST API 규칙
- JoinColumn
- 빈생성안됨
- ERD 작성
- Error creating bean with name
- Spring Spring boot 차이
- json
- git
- 1차캐시
- Q 클래스
- 복합키
- JPA주의사항
- REST란
- 스프링 부트 기능
- Unsatisfied dependency
- Today
- Total
목록전체 글 (208)
Everyday Dev System
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dIsRjk/btskZVLoWap/WkOpWCk79dUT9toF6fTUL1/img.png)
초기 프로젝트 설정 더보기 0. 프로젝트 생성 1. build.gradle에서 security 의존성 주석처리. plugins { id 'java' id 'org.springframework.boot' version '3.1.0' id 'io.spring.dependency-management' version '1.1.0' } group = 'com.sparta' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { // JWT compileOn..
의존성 추가 // Security implementation 'org.springframework.boot:spring-boot-starter-security' // JWT compileOnly group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.5' // JPA implementation 'org.springframework.boot:spring-boot-starter-data-j..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/szN2g/btskXOkoIAR/owhwMAvX1XJqiKDOgbHqKk/img.png)
Cookie와 Session 공부를 하다가 프론트엔드 개발자는 Local Storage 와 Session Storage에 대해서 필수로 학습한다는 사실 알게되었다. 나중에 프론트 개발자와 협업을 하게 될 경우 해당 storage에 대해서 간략하게 나마 알고 있다면 소통하는데에 더욱 용이하지 않을까 싶어서 구글링을 해보았다. 먼저, 쿠키에 대한 기본적인 개념을 짚고 넘어가자. 쿠키란? 먼저 기본적으로 Cookie는 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일, 크롬 기준으로 '개발자도구' 탭을 열어 Application - Storage - Cookies 에서 확인이 가능하다. 또한 그 위에 Local Storage 와 Session Storage가 있다. 이제 이 두개의 저장소에 대해 살펴..
REST API에 대한 강의를 꼭 보면 좋다고 하셔서 쭉 훑어봤다. 훑어보면서 이해한 부분을 아래 글에 정리했다. 2023.06.21 - [백엔드 개발자 필수 요소] - REST API REST API 백엔드 개발자가 가장 많이 다루는 것은 REST API 이다. 그러므로, REST API에 대해서 심도있게 학습할 필요가 있다. 기본기를 탄탄하게 갖춘 백엔드 개발자가 되기 위한 가장 기본적인 필수 요소이 cdev.tistory.com 47분짜리의 길지도 짧지도 않은 강의였지만, Roy Fielding이 REST를 만들게 된 배경과 어떤것이 REST인지를 이해할 수 있었다. 한 문장으로 정리하자면, 서버와 브라우저의 독립적 진화를 위해 만들어낸 것이 REST이다. 또한, REST라고 부를 수 있으려면 여러..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/s86HQ/btskTJp7qWt/JDeKxIve3FWcx4jhoNzKL0/img.png)
JSON은 Java Script에 있는 타입이므로, Java 언어로 바로 읽을 수 없습니다. 또한, JSON은 텍스트 기반이므로 어떠한 프로그래밍 언어에서도 JSON 데이터를 읽고 사용할 수 있습니다. HTTP에서는 전송 계층 프로토콜로 TCP를 사용하고, 네트워크 계층 프로토콜로 IP를 사용하는데 이를 합쳐 TCP/IP라고 부른다. JSON은 XML의 대안으로서 좀 더 쉽게 데이터를 교환하고 저장하기 위하여 고안되었습니다. XML보다 JSON이 더 가볍다. 자세한 내용은 아래와 같습니다. 예전에는 xml이 널리 데이터를 전송할 때 이용되었으나, Json은 xml에 비해 가볍다는 특징으로 주목받았습니다. 또한, 이러한 가볍다는 장점으로 모바일 어플리케이션 중심인 요즘에 굉장히 플러스 요인으로 자리했습니다..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/J0eGx/btskOUtnEFT/LykvjSgKUctBDkSGhzKQD0/img.png)
백엔드 개발자가 가장 많이 다루는 것은 REST API 이다. 그러므로, REST API에 대해서 심도있게 학습할 필요가 있다. 기본기를 탄탄하게 갖춘 백엔드 개발자가 되기 위한 가장 기본적인 필수 요소이다. API는 Client와 Server 사이의 인터페이스이다. API는 다른 SW 시스템과 통신하기 위해 따르는 규칙을 정의한다. REST 아키텍처 스타일을 따르는 API를 REST API 라고 하며, 해당 REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹 서비스 라고 한다. 서버의 API가 HTTP를 준수하여 잘 설계되어 있다면 RESTful 하게 설계되었다고 볼 수 있다. RESTful하게 잘 짜여있는 오픈소스들의 API를 참고하는게 가장 좋음. 위에 내용은 정말 얉은 내용이고, 아래 re..
N : M 양방향 관계에서 중간 테이블 직접 생성하면 된다. Order.java 를 [entity] 내에 생성한다. package com.sparta.jpaadvance.entity; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter @Table(name = "orders") public class Order { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne @JoinColumn(name = "food_id") private Food food; @ManyToOne @JoinCol..
중간에 생긴 orders 테이블에 PK도 없고 직접 생성한 것이 아니라 자동으로 생긴 테이블이므로 추가 변경 사항이 발생할 경우 관리하기가 힘들다는 단점이 있다. 위의 단점을 해결할 수 있는 방법 다음 링크 참조: 단방향 이전 글 참조: 2023.06.21 - [내배캠 주요 학습/Spring 심화] - @ManyToMany 단방향 관계 이해하기 N : M 관계 양방향 전체 Code : package com.sparta.jpaadvance.entity; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; import java.util.ArrayList; import java.util.List; @Entity @Getter @S..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/buGxSD/btskLMO1Zfx/EgHTQei3ozxyKopYp0u2IK/img.png)
N : M 관계 단방향 코드: package com.sparta.jpaadvance.entity; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter @Table(name = "food") public class Food { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private double price; @ManyToMany @JoinTable(name = "order..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bthUZM/btskIYisb2I/ASYWZfj2Uv6gN9VVquzj00/img.png)
1대다 관계 말고는 일반적으로 외래키는 외래키의 주인이 DB에 갖고 있다. 1대다 관계에서 외래키의 주인이 외래키를 갖고 있지 않으니까 추가적인 update문이 발생한 것이다. 1대 N 관계 단방향 1대 N관계 에서는 1의 주인이 외래키의 주인이다. 외래키의 주인은 음식 Entity이지만, 실제 DB 테이블에는 외래키를 고객이 가지고 있는 형태이다. 외래키의 주인인 음식 Entity 외래키 필드이다. Food가 1의 관계이기 때문에 고객 Entity를 여러명을 표현하기 위해서 Java Collection인 List 활 @OneToMany @JoinColumn(name = "food_id") private List userList = new ArrayList(); @JoinColumn(name = "foo..