Web/팁

    [우테코 프리코스] 백엔드 프로젝트 초기설정 (Mac OS)

    1. java 버전 변경 일단 우아한 테크코스에서는 java 8.0 (JDK 1.8) 버전을 사용합니다. 자바8이 설치되어있지 않으시다면 설치먼저 하셔야합니다. 1.1 Java 8 설치 (설치가 되어있다면 1.2로 넘어가세요) 아래는 다른 분의 링크입니다. 이 포스팅에는 자바설치하는 과정까지는 담지않을게요! https://gilu-world.tistory.com/72 OS X(맥 OS) - Java 다운로드 및 환경변수 설정(JDK 1.8 - 8u251) 자바 환경변수 설정 안녕하세요. 이번 글에서는 자바를 사용하기 위해 가장 먼저 해야 하는 JDK 환경변수를 맥 OS에서 설정하는 방법을 소개하도록 하겠습니다. 준비물 - JDK 파일 - 오라클 gilu-world.tistory.com 1.2 터미널 Ja..

    [GitHub] Support for password authentication was removed on August 13, 2021. 에러

    여느날과 다름없이 코딩하고 push 하려는데 갑자기 에러가 발생했습니다. 2021년 8월 13일부로 비밀번호 인증이 삭제되고 개인 인증키를 사용해야 한다고 써있습니다. 다들 얼른 해결하고 다시 코딩하러갑시다. 해결방법 github홈페이지에서 개인 인증키를 받아야 합니다. 1. 깃허브 Token 발급받기 깃허브 홈페이지에서 프로필을 클릭하고 setting, 그 다음 Developer settings로 들어가 줍니다. Personal access tokens 클릭 Generate new token 클릭 내가 알아볼 수 있는 token 이름과 필요한 권한에 체크해주고 맨 아래 Generate token을 클릭해줍니다. 토큰발급완료 2. push할때 토큰 같이 입력해주기 이런식으로 push할 리포지토리주소 사이..

    [Spring] main과 test에서 따로 동작하는 클래스 만들기

    개발을 하다보면 main에서만 실행되고 test에서는 실행되길 기대하지 않는 메서드(나 클래스)가 있을 수 있습니다. main 과 test에서 따로 동작하는 클래스를 제작하는 방법에 대해 다뤄봅니다. 방법 1. application.yml 을 main과 test에 따로 만들고 spring.profiles.active 이름을 다르게 지정합니다. main의 application.yml spring: profiles: active: local ... test의 application.yml spring: profiles: active: test ... 2. main에서만 실행되길 기대하는 클래스에 @Profile("local")을 붙여줍니다. 보통은 개발단계에서 InitDB를 main에서만 실행시킬때 사용합니다..

    [IntelliJ] [Java] UnsupportedClassVersionError 해결

    에러상황 Exception in thread "main" java.lang.UnsupportedClassVersionError:dongho/classflix/ClassflixApplication has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 원래 프로젝트 클래스파일은 55.0 버전으로 컴파일되어있지만 현재 컴파일러 버전은 52.0 이라서 로딩이 불가하다는 에러입니다. 버전이 55.0, 52.0 이라고 되어있어서 헷갈릴 수 있는데, Java 버전은 이렇..

    [IntelliJ] Gradle 프로젝트 불러올때 에러해결

    에러상황 가끔씩 IntelliJ에서 기존의 프로젝트를 불러올때 spring boot annotation들이 적용이 안되고 빨간불이 들어올 때가 있습니다. 해결하고나서 포스팅하는거라 적용이 안됐을 때의 자료화면이 없습니다. ㅠ 나중에 또 같은 에러가 뜰 때 해당 에러 화면 사진 올리겠습니다. 그래도 아마 프로젝트 불러왔을때 원래 되던 스프링부트가 안될경우는 아마 이 해결방법으로 해결이 될 것입니다! 해결방법 해결은 간단합니다. 프로젝트 디렉토리에서 .idea 디렉토리를 삭제하고 다시 프로젝트를 import 하면 됩니다. 그리고 인텔리제이를 종료한 뒤, 다시 build.grade을 open해줍니다. 그러면 .idea가 없기때문에 아래와같이 gradle 프로젝트를 새로 임포트할 수 있는 화면이 뜹니다. 여기서..

    [Spring] [IntelliJ] 정적리소스 서버 재시작없이 바로 반영하기

    스프링으로 이미지 업로드와 출력 기능을 구현하면서 업로드 한 파일을 바로 출력할때 반영이 안되는 상황이 있었습니다. 이미지를 업로드하자마자 바로 반영은 안되지만 인텔리제이를 한번 눌러서 저절로 폴더를 새로고침하고 그 다음 브라우저를 새로고침하면 이미지가 반영되게 만들었습니다. 1. devtools dependency 추가 dependencies { ...생략... developmentOnly("org.springframework.boot:spring-boot-devtools") } 2. application.yml 추가 devtools에 livereload.enabled -> true restart.enabled -> true thymeleaf.cache -> false (저는 타임리프를 사용중이어서 그..

    [Java] File to MultipartFile (import 포함)

    다크모드로 보시는걸 추천드립니다. 스프링에서 파일업로드를 구현할때 테스트 코드를 작성하려면 File을 읽어와서 MultiPartFile로 변환해주어야 합니다. 변환하는 코드는 인터넷에 많지만 어떤것을 import하는지 아무리 찾아봐도 나오지 않아서 제가 직접 찾아가며 구현했습니다. File 을 MultiparFile로 변환하는 코드를 사용하기 위해서는 2가지가 만족되어야 합니다. (gradle(혹은 maven) fileupload, io) dependency 추가 제대로된 (FileItem, DiskFileItem, IOUtils) import gradle dependency 추가하기 맨 아래 두개를 꼭 추가해주어야 합니다. 그래야 import가 잘 동작합니다. dependencies { implemen..

    warning: CRLF will be replaced by LF in gradlew.bat. 문제해결방법

    git add . 시 warning: CRLF will be replaced by LF in gradlew.bat. 문제가 발생한다. 이것은 git에서 발생하는 Whitespace 에러이다. 유닉스시스템에서는 한줄의 끝이 LF 로 이루어지지만, 윈도우에서는 CR,LF (CRLF)로 이루어지기 때문에 git에서 어느것을 선택할지 혼란이 온 것이다. 해답은 core.autocrlf를 켜주어서 git이 자동으로 한 줄의 끝을 변환해주는 기능을 사용하면 왼다. 윈도우 사용자는 git config --global core.autocrlf true 리눅스, 맥 사용자는 git config --global core.autocrlf true input 명령어를 입력하면 된다. 물론 global 설정이 아닌 이 프로젝트..

    인텔리제이에서 커맨드라인으로 쓰던 git 중간에 연동하기 + merge conflict gui로 해결하기

    인텔리제이에서 원래는 CLI로 git을 사용했는데, merge conflict 를 해결할때는 gui를 이용하는 것이 생산성이 좋을 것 같았다. 그래서 중간에 인텔리제이에서 git을 연결하는 방법을 찾아보았다. 처음에 깃을 연동하지 않았을 때는 VCS에서 git 버튼이 보이지 않는다. 인텔리제이에서 .git을 자동으로 읽어오지 않는 것이다. 하지만 수동으로 기존에 쓰던 .git을 읽어오게 하는 방법이 있다. Enable Version Control Integeration을 누르면 기존에 쓰던 .git을 가져오고 위와같이 intellJ에서도 git을 이용할 수 있게된다. 그리고 merge conflict가 발생했을 때는 아래와 같이 Resolve Conflicts가 활성화 된다. 클릭을 하면 merge co..

    [JPA, Lombok] @Setter 없애기 대안

    목차 (클릭시 해당 목차로 이동) 1. 생성자를 통해 주입한다. package study.datajpa.entity; import lombok.Getter; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity @Getter public class Member { @Id @GeneratedValue private Long id; private String username; protected Member() { } public Member(String username) { this.username = username; } } 1) 빈 생성자를 하나 추가해야한다. ..