본문 바로가기
반응형

Develop232

PATCH 메소드는 언제 사용하는가? 목차 1. 문제 발생 2. 개념 되짚어보기 3. Java와 PATCH 4. 개선 방법 1. 문제 발생 현재 JPA, Spring 기반으로 토이 프로젝트를 진행 중인데 고민이 하나 생겼다. 설정 값들은 RDB에 저장되며 PK를 제외하고는 값 수정이 가능하다. 예를 들어 이름, 나이, 생일, 직장을 변경할 수 있다고 하자. 그러면 API를 아래와 같은 방법으로 설계해볼 수 있다. 이름, 나이, 생일, 직장 각 필드마다 API 따로 설계 이름만 변경하는 경우 이름 API만 호출해도 됨 모든 값을 변경하는 경우 API 4개 호출하는 상황 발생 이름, 나이, 생일, 직장 한 번에 변경되는 API 설계 이름만 변경하는 경우 나이, 생일, 직장을 null 체크 해주거나 나이, 생일, 직장에 대한 정보도 함께 받아야 .. 2022. 1. 25.
[Git] cherry-pick 수행 시 발생 오류 cherry pick이란? : 특정 커밋의 변경사항을 가져오는 작업 자주 발생하는 오류 목록 1. error: Your local changes to the following files would be overwritten by merge: ~ Please, commit your changes or stash them before you can merge. 커밋하지 않은 변경된 파일들의 작업 내역이 날아갈까봐 경고해준다. 해결 방법 👉 변경 사항들 커밋 🔻 변경된 파일이 없는데 위 에러가 발생하는 경우? 더보기 더보기 변경 사항이 스테이징 영역에 존재할 수도 있다. 아래 명령어를 통해 변경 사항을 조회해보자. $ git status status 확인과 함께 친절하게도 추천하는 명령어도 알려준다. 이를 반.. 2022. 1. 18.
[JPA] Table 'DB.hibernate_sequence' doesn't exist 에러 java.sql.SQLSyntaxErrorException: (conn=602) Table 'DB이름.hibernate_sequence' doesn't exist 에러 Entity의 PK를 @GeneratedValue(strategy = GenerationType.AUTO)로 해두었을 때 발생한 문제이다. hibernate_sequence라는 테이블에서 PK를 조회하는데 해당 테이블이 존재하지 않아서 발생한다. 이 때 선택할 수 있는 방법이 두 가지 있다. DDL 자동생성 설정 하기 GenerationType 변경하기 1의 경우에는 실제 운영 환경에서 쓰기에는 매우 위험하다. DDL을 자동으로 생성한다는 것은 애플리케이션 실행 이후로 DB의 테이블 구조가 막 바뀔 수 있다는 의미이다. 개발 환경이라면 편.. 2022. 1. 14.
[JPA] 프록시와 영속성 전이 이전에 읽으면 좋은 글 JPA란? https://yeonyeon.tistory.com/178 Entity 매핑 https://yeonyeon.tistory.com/179 목차 프록시 영속성 전이 1. Proxy; 프록시 Entity Manager의 .getReference()를 통해 DB 조회를 미루는 가짜(프록시) 엔티티 객체를 조회 실제 클래스를 상속 받아 생성해 겉 모양이 같음 사용자는 진짜 객체인지 프록시 객체인지 구분 X 실제 객체의 참조(target)를 보관 프록시 객체에서 메소드 호출 시, 프록시 객체가 실제 객체의 메소드를 호출 (아래 동작 과정 참고) proxy 동작 과정 Member member = em.getReference(Member.class, “id1”); member.getN.. 2022. 1. 13.
[JPA] Entity 매핑 이전 글: https://yeonyeon.tistory.com/178 예제 코드: https://github.com/yeon-06/inflearnSpring/tree/master/jpa-ex1 목차 1. @Entity란? 2. DB 스키마 자동 생성 3. 필드와 컬럼 매핑 4. 기본 키 매핑 5. 연관 관계 매핑 6. 상속 관계 매핑 7. 공통 매핑 1. @Entity란? JPA가 관리하는 클래스 JPA를 사용해 테이블과 매핑할 클래스 public, protected 기본 생성자 필수 👉 JPA의 구현체(ex: hibernate)가 지원하는 다양한 기능을 사용하기 위함 final, enum, interface, inner 클래스 사용 불가 👉 @Entity로 매핑이 불가능 값을 저장할 필드에 final .. 2022. 1. 10.
[JPA] JPA란? 목차 JPA가 등장한 이유 JPA란? 왜 JPA를 사용해야 하는가? JPA 주의사항 JPA의 중요한 기능 예제 코드: https://github.com/yeon-06/inflearnSpring/tree/master/jpa-ex1 GitHub - yeon-06/inflearnSpring: 🍃Inflearn에서 김영한님 강의를 듣고 정리하는 레포지토리 🍃Inflearn에서 김영한님 강의를 듣고 정리하는 레포지토리. Contribute to yeon-06/inflearnSpring development by creating an account on GitHub. github.com 1. JPA가 등장한 이유 현재 많은 웹과 앱에서 데이터베이스는 관계형 DB를 주로 사용하고 있다. NoSQL과 RDB 중 어떤 .. 2022. 1. 3.
[Spring/MariaDB] 연동 시 자주 발생하는 오류 ❓ org/mariadb/jdbc/Driver : Unsupported major.minor version 52.0 👉 Java와 MariaDB 버전 맞추기 (버전 확인하는 곳) ❓ Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl 👉 해결1) application.properties에서 설정한 url에 오타 없는지 확인 👉 해결2) localhost의 경우 아래와 같이 설정해야 함 spring.datasource.url=jdbc:mysql://localhost.com:3306/DB명 ❓ No session repository could be auto-configured, check your configuration (session store t.. 2021. 12. 26.
[MariaDB] 설치 방법 (+the same name already exists 에러) 설치 환경: Windows 10 MariaDB는 설치가 간단하다. MariaDB 공식 홈페이지로 들어가서 원하는 버전을 선택 후 Download 버튼을 클릭하기만 하면 된다. msi를 받았다면 해당 프로그램을 실행, zip를 받았다면 압축 해제 후 설치 실행하면 된다. 여기서 재설치를 한 사람이라면 a service with the same name already exists라는 에러가 났을 수 있다. 나같은 경우에는 옛날에 MariaDB를 사용 안 할줄 알고 폴더 보이는 대로 막 삭제했더니...(이러면 안된다ㅠ.ㅠ) 정상적인 삭제 방법이 아니라 일부분이 지워지지 않은 것 같다. 명령 프롬프트를 '관리자 권한'으로 실행시켜 다음 명령어를 입력하면 삭제된다. > sc delete 서비스명 💡 sc란? Se.. 2021. 12. 26.
[Log4j] Log4j 취약점 발견되다? 본 글은 이번 달 새로 발견된 Log4j 보안 취약성에 대해 알아보기 위해 작성한 글이다. 참고로 현재 발견된 Log4j의 문제는 1.x에서는 해당되지 않으나 1.x에는 다른 보안 취약성이 많이 존재하므로 업데이트를 추천한다. 1. 어쩌다 발견되었나? 🤔 마인 크래프트라는 게임을 누구나 한번쯤은 본 적이 있을 것이다. 이번 사태는 해당 게임의 기술자를 통해 본격적으로 널리 알려지게 되었다. 11/24 알리바바에 의해 취약점 발견 12/10 PaperMC가 Discord를 통해 긴급 패치된 파일로 업데이트 하도록 긴급 공지 (PaperMC: 마인크래프트의 마크 멀티플레이 버킷 서비스) GitHub Advisory Database에 CVE-2021-44228 취약점 게재 (GitHub Advisory Dat.. 2021. 12. 16.
반응형