오류상황 SpringBoot3.1.2 버전 프로젝트에 Swagger를 적용하려고한다. https://devfunny.tistory.com/692 SpringBoot + SpringSecurity 프로젝트에 Swagger 3.0 적용하기 이전 버전 Swagger 2.0 적용 방법 https://devfunny.tistory.com/313 SpringBoot에 Swagger을 빠르게 적용해보기 Swagger 요즘 백엔드 개발은 ModelAndView 방식보다는 API 위주의 어플리케이션을 권장하고 있다. API 개발 devfunny.tistory.com ▶ 이전에 Swagger3.0을 적용하고 남겨둔 포스팅이 있어서 참고했지만 아래와 같은 오류를 만나게된다. Type javax.servlet.http.Htt..
1) pom.xml 추가 org.modelmapper modelmapper 2.3.8 2) ModelMapper 사용 UserEntity.java @Setter @Getter @Entity @Table(name = "users") public class UserEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long idx; @Column(nullable = false, length = 50) private String userId; @Column(nullable = false, length = 50) private String userName; } UserDto.java @Data public class UserDto {..
구현 1) build.gradle 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-security:2.4.2' 2) CommonEncoder.java 생성 @Component public class CommonEncoder implements PasswordEncoder { private final PasswordEncoder passwordEncoder; public CommonEncoder() { this.passwordEncoder = new BCryptPasswordEncoder(); } public CommonEncoder(PasswordEncoder passwordEncoder) { this.passwordEncoder ..
기본제공 findById(PK) 메소드 public Optional getMember(Long idx) { return memberRepository.findById(idx); } JPA에서 ID값을 파라미터로 SELECT 할 수 있는 기본 findById 메소드를 제공한다. 하지만 ID 필드가 아닌 다른 여러 필드들로도 데이터를 조회할 경우가 생기게된다. 상황 로그인 API를 구현하면서 파라미터로 받아온 아이디와 패스워드에 맞는 회원 정보가 있는지 조회해야하는 상황이 생겼다. 1) AuthController.java @PostMapping("/login") public ResponseEntity login(@ModelAttribute LoginDto loginDto, @ApiParam(hidden = ..
상황 SpringBoot 프로젝트를 진행하면서 로그인/로그아웃 API를 개발할 단계가 되었다. SpringBoot 프레임워크 프로젝트에 세션 관리를 Redis로 진행해보자. Redis 설치 우선 프로젝트가 Redis를 연동할 수 있도록 Redis를 설치해야한다. docker에 redis를 간단하게 설치하였다. docker redis 설치 포스팅 : devfunny.tistory.com/424?category=820624 docker로 redis 설치 (with docker-compose) Redis 이미지 설치 docker pull redis docker-compose 파일 생성 version: '3.0' services: redis1: image: redis command: redis-server --..
ElasticSearch 설치 Docker + Elasticsearch 설정하는 이전 포스팅을 참고하자. devfunny.tistory.com/365 Docker Centos7에 ElasticSearch + Kibana 설치하여 외부 로컬에서 접속하기 (with Docker Hub) 들어가기전 docker에 centos7을 설치 후, 해당 컨테이너를 실행하고 그 안에 Elasticsearch와 Kibana를 설치하여 localhost:5601로 kibana를 띄어볼 것이다. 이를 위한 순서는 아래와 같다. 1) Centos 설치 2) JDK.. devfunny.tistory.com 설정파일 생성 1) build.gradle Import /* elasticsearch */ compile 'org.sprin..
도입 스프링부트 프로젝트에서 JPA를 사용하여 API를 만드는 상황에 놓였다. 나는 API의 파라미터로 받아올 DTO 파일을 생성하였고, JPA Repository로 보낼 Entity 파일을 생성하였다. com.api.seohae - dto UsersDTO.java - entity Users.java 위 구조로 갔을때 만나게될 상황을 자세히 살펴보자. 상황분석 Users 테이블에 회원을 등록하는 간단한 POST API를 보자. @PostMapping("") public ResponseEntity addUser(@ModelAttribute UsersDto usersDto) { Users users = userService.addUser(usersDto); return ...; } 파라미터로 UsersDto..
application.yml 파일 spring: datasource: url: jdbc:oracle:thin:@127.0.0.1:1521:XE username: seohae password: pawd123 driver-class-name: oracle.jdbc.driver.OracleDriver Ojdbc6 나의 프로젝트 버전은 아래와 같다. id 'org.springframework.boot' version '2.4.2' Oracle DB 연동을 하기위해 Ojdbc6 을 build.gradle 에 추가했다. runtimeOnly 'com.oracle.database.jdbc:ojdbc6' 하지만 제대로 연동되지 않는다. Ojdbc6 을 포함하게되면 application.yml 파일 안의 driver-c..