본문 바로가기

분류 전체보기204

User 엔티티를 외래키로 가진 Post 엔티티 추가하기(INSERT) | Spring Spring boot JPA Study ✔ Java 11 ✔ Gradle 7 ✔ Spring boot 2.6.3 2. 게시글 추가 기능 Issues #40 Pull request #51 - 풀 리퀘스트 링크를 통해 해당 코드를 확인할 수 있습니다. 1. PostController @PostMapping("/{userpk}") public void createPost(@PathVariable(name = "userpk") @Valid long userPk, @RequestBody @Valid CreatePostRequestDto createPostRequestDto) { boardMinjService.createPost(userPk, createPostRequestDto); } @PostMapping("/{userpk}") user 엔티티가 p.. 2022. 2. 16.
JPA Auditing 사용하여 엔티티 설계하기 | Spring Spring boot JPA Study ✔ Java 11 ✔ Gradle 7 ✔ Spring boot 2.6.3 ✔ 목표 JPA Auditing 사용하여 생성 날짜, 수정 날짜의 컬럼 자동화 1. 엔티티 설계 https://github.com/ywoo-srin-minj/spring_study/issues/39 디렉토리 구조 ├─entity │ │ BaseEntity.java │ │ │ ├─name │ │ ├─boardName │ │ │ │ BoardName.java │ │ │ │ │ │ │ └─repository │ │ │ BoardNameRepository.java │ │ │ │ │ └─userName │ │ │ UserName.java │ │ │ │ │ └─repository │ │ UserNameRepository.java │ │ Use.. 2022. 2. 15.
[MySQL | Node] ER_NOT_SUPPORTED_AUTH_MODE 발생 상황 Node.js에서 MySQL을 연결 후 실행하는 도중 발생 에러 코드 및 메시지 Error Code : ER_NOT_SUPPORTED_AUTH_MODE Error Message : ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client 해결 방법 1. MySQL Installer 실행 2. MySQL Server > Reconfigure 들어가기 3. Authentication Method > Use Legacy Authentication Method로 변경 해결 실행해보면 잘 돌아가는 걸 확인할 수 있다. > node .. 2022. 2. 14.
Controller 통합 테스트 코드 | Spring Spring boot JPA Study ✔ Java 11 ✔ Gradle 7 ✔ Spring boot 2.6.3 통합 테스트란? DB에 접근하거나 전체 코드와 다양한 환경이 제대로 작동하는지 확인하는데 필요한 모든 작업을 수행할 수 있다. 테스트 프레임워크로 JUnit을 사용했다. 1. 테스트 파일 생성 Controller 메소드 이름을 우클릭 후 Generate > Test를 눌러 테스트 파일을 자동으로 생성할 수 있다. 2. 테스트 파일 세팅 @Transactional @SpringBootTest class UserMinjControllerTest { private MockMvc mockMvc; @Autowired private WebApplicationContext context; @BeforeEach void setUp() { mock.. 2022. 2. 12.
[Spring | test | H2] test에서 H2 DB 연결하기 ✔ Java 11 ✔ Gradle 7 ✔ Spring boot 2.6.3 test code에서 더미 데이터를 사용하기 위해 h2 db를 연결하게 되었다. 1. application.yml 추가 test > resources > application.yml spring: datasource: url: jdbc:h2:mem:testdb driverClassName: org.h2.Driver username: sa password: h2: console: enabled: true profiles: active: local jpa: database-platform: org.hibernate.dialect.H2Dialect database: h2 hibernate: ddl-auto: update open-in-v.. 2022. 2. 12.
[Spring boot | MySQL] Intellij에 MySQL 연결하기 | 모든 프로젝트에서 연결된 디비 연결하기 ✔ Java 11 ✔ Gradle 7 ✔ Spring boot 2.6.3 1. 로컬에서 db 생성 및 기본 DB 정보 파악 mysql> CREATE DATABASE tmc_db; Query OK, 1 row affected (0.00 sec) 참고 생성한 db 이름 : tmc_db 2. 의존성 추가 build.gradle runtimeOnly 'mysql:mysql-connector-java' 3. Database 찾기 ‘Database’를 검색하거나 오른쪽에 보면 해당 탭을 찾을 수 있다. 4. MySQL 연결하기 1. MySQL 찾기 Data Source > MySQL을 눌러 창을 열어준다. 2. DB 정보 입력하기 Name [사용자 지정] 자신이 알아볼 수 있는 이름으로 지정해준다. 아무렇게 적어도.. 2022. 2. 11.
Controller 예외 처리 | Spring Spring boot JPA Study ✔ Java 11 ✔ Gradle 7 ✔ Spring boot 2.6.3 Controller 예외 처리 Issues #26 Controller 예외 처리 Pull request #33 1. Error Response @Getter @AllArgsConstructor public class ErrorResponse { private int status; private String message; } 밑의 json 형태로 반환하기 위해 response entity를 생성한다. { "status" : 200, "message" : "ok" } 2. Enum - ErrorCode @Getter @AllArgsConstructor public enum ErrorCodeEnum { USER_NOT_FOUND(Htt.. 2022. 2. 11.
[Spring | Gradle 7] QueryDSL 적용 ✔ Java 11 ✔ Gradle 7 ✔ Spring boot 2.6.3 My GitHub Commit 1. gradle 추가 김영한님의 querydsl 적용 방법으로 적용했다. ref. https://www.inflearn.com/questions/219898 build.gradle // querydsl 추가부분 buildscript { dependencies { classpath("gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugin:1.0.10") } } plugins { id 'org.springframework.boot' version '2.6.3' id 'io.spring.dependency-management' version '1.0.11.RELE.. 2022. 2. 10.
회원 수정 기능 구현 | Spring Spring boot JPA Study ✔ Java 11 ✔ Gradle 7 ✔ Spring boot 2.6.3 회원 수정 기능 구현 Issus #10 회원 수정 기능 구현 Pull request #30 1. UpdateUserRequestDto 수정할 데이터를 받아오기 위해 request dto를 추가했다. @Getter @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) public class UpdateUserRequestDto { @NotNull String user_password; @NotNull String user_name; } put 메소드를 사용할 시 클라이언트가 해당 정보를 모두 안다는 가정이 필요하다. 그래서 바꾸고 싶은 데이터만 받아와 변경할 수.. 2022. 2. 10.