본문 바로가기

분류 전체보기185

[Spring Boot] jakarta.servlet.ServletException: No adapter for handler [Controller@] The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler [Spring Boot] jakarta.servlet.ServletException: No adapter for handler [Controller@] The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler ServletException은 Spring MVC에서 호출한 Controller 요청을 처리할 적절한 HandlerAdapter를 찾을 수 없을 때 발생주로 컨트롤러 설정에 실수가 있을 때 자주 발생문제 해결하기Controller 에서 필요로 하는 annotation을 빼먹지 않았는지 확인@RestController, @Controller, @RequestMapping, @GetMa.. 2024. 10. 29.
[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.
[Ubuntu] 타입 스크립트 시작하기 우분투에서 Visual Studio Code 설치https://code.visualstudio.com/ Visual Studio Code - Code Editing. RedefinedVisual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.code.visualstudio.com비쥬얼 스튜디오 공식 홈페이지에서 데비안 파일 (.deb)를 다운로드를 받아 줍니다.cd ./다운로드 .. 2024. 7. 9.
React + TypeScript 패키지 설치 에러 라이브러리가 선언은 되었지만 해당 값이 읽히지는 않았습니다 혹은 React 빌드 후 웹페이지에서 TS2307: Cannot find module 'react-icons/go' or its corresponding type declarations. 이런식으로 에러가 나는 경우 타입을 선언해줘야 한다. npm install react-icons 예를들어 react-icons를 사용할 때 패키지를 설치해 주고 TypeScript의 타입 선언 파일을 명시적으로 설치해 주어야 한다. npm install @types/react-icons 2024. 7. 3.
React + Typescript 빌드 부터 실행 까지 사용 기술 스택ReactTypescriptTailwind CSSReact-QueryLuxonReact-Router-DomZustandZod node 설치하기리액트 프로젝트를 시작하기에 앞서 node를 설치합니다. 맥 환경에서 brew를 이용해 설치해 줍니다. brew install node 설치가 잘 되었는지 확인하려면 node 명령어를 사용해서 버전을 확인해 줍니다. node -vnpm -v  typescript + react 앱 생성하기npx create-react-app [프로젝트 이름] --template typescript cd (change directory) 명령어를 사용해서 해당 폴더로 이동해 줍니다.  cd [프로젝트 이름] 이동 후 아래 명령어를 사용해서 추가적으로 필요한 디펜던시를 설.. 2024. 7. 1.
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) 입니다. 용량이 가볍고 스프링 부트에 기본적으로 내장되어 있어 단위 테스트나 로컬 환경 테스트에 적합합니다. 설치가 따로 필요 없기 때문에 사용하기 편리하지만 애플리케이션이 종료 되면서 같이 데이터가 휘발되는 단점이 있습니다. 파일로 데이터베이스를 관리하여 애플리케이션을 반복하여 실행하더라도 데이터를 관리할 수 있게 하고 여러 애플리케이션에서도 사용할  수 있는 방법을 알아 봅시다. 또한 콘솔 모드를 통해 데이터를 파악하고 스프링 부트에서 어떻게 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.