본문 바로가기
반응형

Develop/Spring+JPA59

[Spring/MariaDB] 연동 시 자주 발생하는 오류 ❓ org/mariadb/jdbc/Driver : Unsupported major.minor version 52.0 👉 Java와 MariaDB 버전 맞추기 (버전 확인하는 곳) ❓ Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl 👉 해결1) application.properties에서 설정한 url에 오타 없는지 확인 👉 해결2) localhost의 경우 아래와 같이 설정해야 함 spring.datasource.url=jdbc:mysql://localhost.com:3306/DB명 ❓ No session repository could be auto-configured, check your configuration (session store t.. 2021. 12. 26.
Entity vs DTO vs VO 목차 1. 왜 이 글을 작성하게 되었는가? 2. 들어가기 전에... // 계층에 관하여 3. DTO, VO, Entity의 개념 4. DTO vs VO 5. DTO vs Entity 6. 정리 😲 왜 이 글을 작성하게 되었는가? 토이 프로젝트를 들어가기 앞서 어떤 식으로 프로젝트 구조를 잡을지 고민중이다. GitHub에서 다른 사람들이 Spring으로 개발한 웹 서비스를 탐방했는데 구조가 아래와 크게 다르지 않았다. service 폴더 domain 폴더: repository와 dto 포함 web 폴더: controller 포함 그런데 여기서 domain 폴더명이 다 제각각이었다. 😱 데이터를 저장하는 객체인 것은 알겠는데 Entity, Domain, DTO 등 다양한 이름을 존재하였고 이에 대한 차이가 .. 2021. 11. 23.
[Thymeleaf] 타임리프란? (+기본적인 사용법) 간단한 CRUD를 구현하다가 org.thymeleaf.exceptions.TemplateProcessingException 에러를 너무 많이 겪어서 타임리프에 대해 잠깐 공부하기로 했다. (위 에러는 타임리프 문법을 잘못 쓰는 등의 이유로 특정 url을 찾지 못하거나 파싱 에러가 나는 경우에 자주 나는 에러이다.) Thymeleaf란? '템플릿 엔진'의 일종. html 태그에 속성을 추가해 페이지에 동적으로 값을 추가하거나 처리할 수 있다. 타임리프를 통해 속성을 대체할 수 있는데, 아래 예제를 살펴보자. input 태그는 th:value를 통해 item이라는 변수에 값이 존재하면 해당 값을 세팅해준다. 만약 item이 존재하지 않으면 value="test"를 통해 "test"라는 문자열을 세팅해준다. .. 2021. 10. 15.
[Spring] HTTP 메시지 컨버터 HTTP 메시지 컨버터란? JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우, HTTP 메시지 컨버터를 사용하면 매우 편리하다! HTTP 메시지 컨버터란, 요청 본문에서 메시지를 읽어들이거나(@RequestBody), 응답 본문에 메시지를 작성할 때(@ResponseBody) 사용하는 컨버터다. 🔻 포스팅을 보기 전, @ResponseBody를 다시 살펴보자. 더보기 웹 브라우저가 "localhost:8080/hello-api" 접근 서버를 거쳐 helloController 호출 helloController의 @ResponseBody를 통해 HttpMessageConverter가 호출 return 타입에 따라 JsonConverter 또는 StringConverter를 이용해 return.. 2021. 10. 10.
[Spring] HTTP 응답 📖 개요 서버에서 응답 데이터를 만드는 방법은 크게 3가지다. 정적 리소스 (ex: 정적 html, css, js, ...) 뷰 템플릿 (ex: 동적 html) HTTP 메시지 📕 1. 정적 리소스 정적 리소스는 해당 파일을 변경 없이 그대로 서비스하는 것이다. src/main/resources는 리소스를 보관하는 곳이고, 클래스패스의 시작 경로다. 스프링 부트는 클래스 패스의 다음 디렉토리에 있는 정적 리소스를 제공한다. /static, /public, /resources, /META-INF/resources 📒 2. 뷰 템플릿 뷰 템플릿을 거쳐 html이 생성되고, 뷰가 응답을 만들어 전달한다. 일반적으로 html을 동적으로 생성하는 용도로 사용된다. 스프링 부트의 기본 뷰 템플릿 경로는 아래와 같다.. 2021. 8. 11.
[Spring] http 요청 데이터 조회 📖 개요 클라이언트에서 서버로 요청 데이터를 전달하는 경우는 크게 3가지가 있다. GET - 쿼리 파라미터 (ex: ~~/url?username=yeonLog) POST - html form 태그 HTTP 메시지 바디에 데이터 직접 담기 (ex: json, xml, text, ...) 위 3가지 방법을 통해 요청 데이터를 실제로 조회해보자. 📕 1. GET - 쿼리 파라미터 url 뒤에 파라미터를 직접 넣어주는 방식 RequestParamController.java @Slf4j @Controller public class RequestParamController { @RequestMapping("/request-param-v1") public void requestParamV1(HttpServletReq.. 2021. 8. 9.
[Spring] 헤더 조회 어노테이션 기반의 스프링 컨트롤러는 다양한 파라미터를 받아올 수 있다. 어떠한 파라미터를 받아올 수 있는지 몇 가지 예제를 통해 살펴보겠다. 📚 HTTP 헤더 조회 @Slf4j @RestController public class RequestHeaderController { @RequestMapping("/headers") public String headers(HttpServletRequest req, HttpServletResponse res, HttpMethod httpMethod, Locale locale, @RequestHeader MultiValueMap headerMap, @RequestHeader("host") String host, @CookieValue(value="myCookie", .. 2021. 7. 14.
[Spring] 요청 매핑 이제 간단한 요청 매핑 예제를 만들어서 PostMan으로 테스트할 것이다. MappingController를 만들고 테스트용으로 가장 간단한 메소드를 만들었다. @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping("/hello-basic") public String helloBasic() { log.info("helloBasic"); return "ok"; } } @RestController @Controller는 반환 값이 String이면 View 이름으로 인식 @RestController는 반환 값을 HTTP 메시지 바디에 바로 입력 .. 2021. 6. 25.
[스프링 MVC] @Controller, @RequestMapping 지난 게시글에서 OldController를 통해 기존의 Controller 동작 방식을 살펴봤었다. 이제 본격적으로 스프링 MVC의 편리한 기능들을 사용할 것이다. 컨트롤러를 작성하는데 키 포인트는 @Controller와 @RequestMapping 이 두 어노테이션이다. 이 두 가지에 대해 간단히 설명하고 코드를 작성하겠다. @Controller 내부에 @Component 어노테이션이 존재해 컴포넌트 스캔의 대상 스프링이 자동으로 스프링 빈으로 등록 스프링 MVC에서 어노테이션 기반 컨트롤러로 인식하게 함 @RequestMapping 요청 정보를 매핑 해당 url이 호출되면 해당 메소드가 호출 어노테이션 기반 동작이기 때문에 메소드 이름은 자유 + 핸들러 매핑과 핸들러 어댑터 중 가장 우선순위가 높은 .. 2021. 5. 27.
반응형