순환참조 문제 발생 user 와 board 를 일대다 양방향으로 작업했다. 테스트를 해보니 오류가 발생하였다. 이 문제는 와 가 서로의 객체를 가지고 있어 무한 루프가 발생하여 생긴 오류이다. 가 를 조회하게 되고, 다시 가 를 조회하게 된다. 이게 계속 반복되어 무한 루프가 발생하게 된 것이다. 해결 방법 또는 를 사용해서 해결할 수 있다...
프로젝트를 진행하면서 Rest API 방식으로 개발을 해왔다. 원할한 테스트를 위해서 서버를 배포해야겠다고 생각했다. 따라서 네이버클라우드에서 제공하는 Ubuntu 18.0 서버에 배포하였다. 1. 자바 설치 프로젝트 버전에 맞는 자바를 설치한다. 다음과 같이 자바 버전이 나오면 설치가 완료된 것이다. 2. Git 설치 git에서 프로젝트를 가져오기...
서버를 Ubuntu 18.0 서버에 배포하던 과정에 서버가 계속 꺼지는 문제가 있었다. 그래서 인텔리제이에서 jar 파일을 빌드하여 배포하기로 했다. 1. jar 파일 빌드하기 인텔리제이 우측의 메뉴를 클릭한 뒤, 를 더블 클릭한다. 그러면 다음과 같이 빌드가 된다. 빌드된 파일은 에 위치한다. 2. 프로젝트 시작 jar 파일을 우분투 서버에...
간단한 게시판을 구축하는 과정에서 이미지 업로드를 구현했다. 그 과정을 정리하고자 한다. 1. Gradle 추가 2. Model 작성 게시물 당 한개의 이미지만 업로드 가능하다는 가정하에 진행하였기에 @OneToOne 관계로 두 테이블을 설정하였다. 은 의 를 가진다. board attachfile FileDTO 파일을 서버에 저장후 결과를...
http://서버주소/image/파일.jpg 와 같은 형식으로 파일에 접근하면 서버의 위치에 저장된 파일에 접근할 수 있다.
얼마전 제9회 SW개발보안경진대회(소개딩4)에 참여했다. 그때 주어진 현장미션에 대해 기록하려고 한다. 0. 현장미션 현장미션은 총 2가지가 있었고, 그 중 이메일 전송 기능을 개발하게 되었다. > 버튼을 추가하여 현재 화면을 지정된 이메일로 발송하는 기능 구현 아래의 과정을 거쳐 미션을 해결하기로 했다. 앱에서 캡처 화면 및 로그인 사용자의 emai...
쿼리 정상적으로 돌아가는거 확인했는데, mybatis에서 오류가 난다니..
api에서 값을 입력받을 때 validation 체크를 위해 어노테이션이다. 각각의 차이점을 정리해보자. --- @NotNull null 값만 허용하지 않는다. "", " " 와 같이 입력되었을 경우에는 허용 된다. @NotEmpty null 과 "" 둘다 허용하지 않는다. " " 은 허용된다. > 스프링부트 2.3 ...
코드를 작성하던 중 어떤걸 써야하나 의문이 들었다. 그래서 찾아보았다. @Column(nullable = false) 엔티티의 필드 값이 로 채워져도 정상적으로 수행되다가 DB SQL 쿼리에서 예외가 발생한다. @NotNull 엔티티의 필드 값이 로 채워지면 바로 예외가 발생한다. 결론은, 을 사용하는 것이 더 빠른 단계에서 예외를 검출하기...
톰캣에서 한글이 깨질때
@Transactional 어노테이션으로 트랜잭션 처리하기
Spring 에서 어노테이션은 보통 아래와 같이 view 페이지를 전달한다. 클라이언트에는 페이지가 전달되어 보여진다. @ResponseBody 만약에 view 페이지가 아닌, 데이터를 전달하고 싶을땐 어떻게 할까? 를 사용하면 된다. 는 return 값을 JSON 형태로 바꿔 HTTP Body 에 담는 역할을 한다. 문자열 데이터 전달 ...
스프링 시큐리티로 간단하게 로그인을 구현해봅시다.
REST란? REST의 정의 "REpresentational State Transfer"의 약자로, 2000년도에 로이 필딩(Roy Fielding)의 박사학위 논문에서 최소로 소개되었다. 당시 웹(HTTP) 설계의 우수성이 제대로 활용되지 못하는 점을 안타까워하며 웹의 장점을 최대한으로 활용할 수 있는 아키텍처로써 REST를 발표했다. REST는 ...
내가 테스트 코드를 잘 작성하고 있을까? Jacoco로 측정해보자.
Java Persistence API 의 약자!자바 ORM 기술에 대한 표준 명세로, 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스객체 중심 개발이 가능하다.SQL 쿼리를 직접 생성하지 않고, JPA 메서드를 활용해 DB를 다루기 때문에
ERROR Failed to execute goal on project XXX: Could not resolve dependencies for project co.xxx.yyy:zzz:war:0.0.1-SNAPSHOT: Failed to collect dependenc