BE24 [Spring Boot] Controller와 RestController 차이와 ResponseBody @Controller Vs. @RestControllerRestController는 Spring Boot 4.0 부터 Restful 서비스 개발을 위해 추가됨RestController는 Controller + ResponseBody 즉, Controller임을 의미하면서 ResponseBody인 RestApi임을 의미한다 @Controller@RestController사용하는 곳Web Application 개발에 사용됨Restful Web Service 개발에 사용됨반환 타입html과 같은 View를 반환json, XML과 같은 Response 반환 @Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Controller@Re.. 2024. 9. 22. [Spring Boot] 한글이 ??? 로 나올 때, 한글 깨짐 이슈 문제 상황스테이징 서버에서 문제 없는 것 확인하고 운영서버 배포했다앱에서 request시 보내주는 데이터를 로그로 확인하니한국어만 ? 로 나오는 이슈가 있었다. 영어는 정상적으로 데이터가 찍히는 걸 확인했다. 바로 파악하기 어려웠던건 request, response 모두 암호화 해서 주고 받고 있고 내부적으로 모두 Base64 utf-8 인코딩을 사용했다.스테이징 서버에서 동작하던 것이 운영서버에서 다르게 동작했기 때문에 두 환경의 차이점을 먼저 살펴보는 것이 맞았다 해결방법-Dfile.encoding=UTF-8 jvm 옵션에서 file.encoding 옵션을 추가한다 "java", "-Dspring.profiles.active=prod", "-Dfile.encoding=UTF-8", "-jar" 위치.. 2024. 8. 23. [Spring Boot] 에러 해결하기 - Attribute was annotated as enumerated, but its java type is not an enum Attribute [com..xxxx.xxx.xxx.domain.faceinfo.domain.Score.type] was annotated as enumerated, but its java type is not an enum [java.lang.String] @Id @Enumerated(EnumType.STRING) private String type; varchar 로 지정한 type이라는 column을 jpa로 엔티티 매핑할 때 생긴 오류이다. Enummerated 어노테이션이 잘못된 타입에 사용된 경우 발생한다String이 아닌 Enum 타입으로 변경해줘야 한다. 2024. 8. 22. Spring boot 프로젝트에 SSL 인증서 적용하기 해당 포스팅은 사설 인증 SSL 적용입니다. 자체 서명 SSL은 다른 글을 참고하세요! 🙇 저의 경우 여러 첨부 파일을 제공 받았는데 파일 이름은 달라도 아래와 같은 구성으로 되어 있을 거에요!.crt.pem서버 인증서 PEM .key.pem개인키 PEM (이미 .jks를 파일이 포함되어 있는 경우도 있으니 확인해보세요! 이미 .jks가 있다면 jks 만드는 과정은 건너 뛰어도 됩니다!) 이 두가지를 사용해서 .p12를 만들고 .p12를 .jks로 변경하겠습니다. openssl pkcs12 -export -in [서버인증서.pem] -inkey [개인키.pem] -out [생성할 파일이름.p12] -name [alias 이름] Enter Export Password:Verifying - Enter E.. 2024. 7. 15. API 성능 테스트를 위한 Apache JMeter 리눅스 환경에서 JMeter 설치하기java --version JMeter설치를 위해 자바가 설치되어 있는지 확인하고, 설치되지 않았다면 설치해 준다. https://jmeter.apache.org/download_jmeter.cgi Apache JMeter - Download Apache JMeterDownload Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (.. 2024. 5. 21. [H2DB] h2 데이터베이스 환경 설정과 스프링 부트 세팅 H2DB란? h2 데이터베이스는 자바 기반의 관계형 데이터베이스 관리 시스템(dbms) 입니다. 용량이 가볍고 스프링 부트에 기본적으로 내장되어 있어 단위 테스트나 로컬 환경 테스트에 적합합니다. in-memory 모드로 실행 시 설치가 따로 필요 없기 때문에 사용하기 편리하지만 애플리케이션이 종료 되면서 같이 데이터가 휘발되는 단점이 있습니다. 파일로 데이터베이스를 관리하여 애플리케이션을 반복하여 실행하더라도 데이터를 관리할 수 있게 하고 여러 애플리케이션에서도 사용할 수 있는 방법을 알아 봅시다. 또한 콘솔 모드를 통해 데이터를 파악하고 스프링 부트에서 어떻게 h2를 세팅할 수 있는지 알아 보겠습니다. h2 설치하기 h2 데이터베이스는 별도의 설치 없이도 스프링에 기본적으로 내장되어 있기 때문에.. 2024. 5. 14. [Spring Boot JPA 게시판 만들기] 3. Entity 생성 간단한 게시판을 만들기 위해서 Board라는 Entity 클래스를 만들어 주겠습니다. JPA를 사용하면 데이터베이스의 구조를 자바의 클래스로 표현해 줄 수 있습니다. 이를 ORM이라고 하는데, ORM은 Object Relational Mapping의 약자입니다. 자바의 객체와 관계형 데이터베이스를 매핑하는 기술을 말합니다. JPA는 ORM을 사용할 수 있도록 인터페이스를 제공합니다. 공통으로 사용하는 Entity 데이터베이스 설계를 하다보면 공통적으로 자주 사용하는 컬럼들이 있습니다. 예를 들어 생성일과 수정일 등이 있습니다. 클래스 정의할 때 마다 매번 정의 하지 않고 공통 Entity 클래스로 만들어 사용할 수 있어요. 먼저 BaseTime이라는 클래스를 생성해 봅시다! import lombok... 2024. 5. 8. [Spring Boot JPA 게시판 만들기] 2. 프로젝트 구조 설정 Controller MVC의 Controller서비스 계층을 호출하고 결과를 뷰에 전달함데이터 검증(벨리데이션)을 수행한다프로젠테이션 레이어로서 웹 요청과 응답을 처리한다비즈니스 로직이 구현되는 곳이 아니다! Request와 Response를 담당한다url에 따라 적절한 View와 mapping을 처리@Autowired, @Service를 사용해 service의 메소드를 사용한다@Controller@RequestMapping("/board")public class BoardController { @Autowired private BoardService boardService;} Service비즈니스 로직이 포함되며 트랜잭션을 시작 하는 곳이다데이터 접근 계층인 Repository를 호출한다.. 2024. 4. 29. IntelliJ 무료 버전으로 스프링 부트 프로젝트 만들기 해당 포스팅은 도서 [스프링 부트 3 백엔드 개발자 되기 자바편]를 참고해서 작성되었습니다! 사진의 UI는 유료 버전의 인텔리제이라서 무료 버전의 UI와 차이가 있습니다. Java 프로젝트를 눌러주고 프로젝트 이름설정, 빌드 시스템을 Gradle, Gradle DSL은 Groovy, GroupId 지정 해줍니다. (여담이지만 인텔리제이 유료버전 조아요...한번 맛들리니 돌아갈 수가 없돠) build.gradle 파일로 이동 plugins { id 'java' id 'org.springframework.boot' version '3.2.0' // 추가 id 'io.spring.dependency-management' version '1.1.0' // 추가 } group = 'org.youable' vers.. 2024. 4. 18. [Spring Boot JPA 게시판 만들기] 1. 환경설정 Intro Spring Boot와 JPA를 활용해서 간단한 게시판 기능을 구현해 보겠습니다. 글은 시리즈로 작성될 예정이며 현재 글에서는 프로젝트 생성, build.gradle과 dependencies, applicaiton.yaml 파일 설정에 대해 알아볼게요. - IDE : IntelliJ - java version : 17 프로젝트 생성 일일이 수동으로 Spring 프로젝트를 생성하고 설정하는 것은 쉽지 않기 때문에 IntelliJ와 Spring Initializer를 사용해서 Spring Boot 프로젝트를 생성하는 방법을 알아봅시다! IntelliJ IDEA 사용 인텔리 제이 유료 버전(IntelliJ IDEA)을 사용하신다면 프로젝트 생성 시 Spring Boot Generators를 사용할 .. 2024. 4. 18. [자바 개발 환경 구축] 자바 환경변수 설정 JDK 파일 설취 위치 확인 /Library/Java/JavaVirtualMachines cd로 위 경로 이동 후 ls 명령어를 실행하면 jdk 파일 확인할 수 있음 jdk-17.jdk vi ~/.zsh profile i 눌러서 편집 모드로 전환 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home export PATH=${PATH}:$JAVA_HOME/bin 환경변수 설정 후 esc 누른 후 :wq!로 저장 javac -version 설정한 JDK 버전이 출력되는지 확인 참고 사이트 https://velog.io/@chrkb1569/%EB%A7%A5%EB%B6%81-%EC%9E%90%EB%B0%94-%EC%84%A4%EC.. 2024. 2. 4. [자바 개발 환경 구축] 맥에 JDK 설치하기 (Java SE) https://www.oracle.com/kr/java/technologies/downloads/#java17 Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com 위 Java 다운로드 페이지 접속 자신의 운영체제에 맞는 JDK를 설치 macOS m1, m2 인 경우 ARM으로 설치 다운로드가 완료되면 패키지 파일 더블클릭하여 실행 다음 버튼 눌러 계속 진행 $ java -version java version "17.0.10" 2024-01-16 LTS Java(TM.. 2024. 2. 4. 이전 1 2 다음