들어가며 지난 TIL에서 JPA를 사용하는 이유에 대해 다뤘었다. [TIL] 06/01 항해99 21일차 - JPA를 사용하는 이유?, JPA 초기 세팅 [TIL] 06/01 항해99 21일차 - JPA를 사용하는 이유?, JPA 초기 세팅 들어가며 인프런 김영한 강사님의 자바 ORM 표준 JPA 프로그래밍 강의 수강을 시작했다. 기존에는 Mybatis를 사용했었는데 항해99 커리큘럼에서 JPA를 사용하기도 하고, JPA가 여러모로 개발하기에 편 annajin.tistory.com 그 이유는 알았으니 JPA의 모태인 ORM에 대해 알아볼 차례이다. 무작정 사용해보고 익히는 것도 좋지만 좋은 개발자가 되기 위해서는 그 개념도 알고 있어야한다고 생각한다. 그럼 시작해보자. 다들 알고있듯이 Java는 객체 지..
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify JSON.stringify() - JavaScript | MDN JSON.stringify() 메서드는 JavaScript 값이나 객체를 JSON 문자열로 변환합니다. 선택적으로, replacer를 함수로 전달할 경우 변환 전 값을 변형할 수 있고, 배열로 전달할 경우 지정한 속성만 결과에 포함 developer.mozilla.org 공공 api에서 가져온 유기동물 객체를 그대로 서버에 넘겨줘야하는 일이 생겼다. 이걸 Object 그대로 서버에 넘겨준 후 서버에서 파싱하는 방법이 있지만 이번에는 클라이언트단에서 JSON형태로 만들어 보내주기..
++ 새로운 글을 작성하면서 내용을 덧붙였습니다! 2023.08.25 - [Study/Spring boot] - [Spring boot] WebClient 사용해보기 2-1 [Spring boot] WebClient 사용해보기 2-1 들어가며 무려 1년도 더 된 이전글이 항상 내 블로그 인기글 1위인걸 볼 때마다 마음에 걸렸다. 막 개발 공부하기 시작했을 즈음 webClient에 대한 자료가 별로 없어서 정리할 겸 작성했던 글인데 annajin.tistory.com 2023.08.26 - [Study/Spring boot] - [Spring boot] WebClient 사용해보기 2-2 [Spring boot] WebClient 사용해보기 2-2 들어가며 2023.08.25 - [Study/Spring ..
간단한 게시판을 만드는 미니프로젝트 중 한글명으로 된 파일을 업로드하고나면 SELECT를 할 때 파일을 불러오지 못하는 에러가 있었다. 생각으로는 우리가 주소창에서 종종 보는 것처럼 %2Fmanage%2Fposts%2F (예시, 현재 글쓰기 창 주소에서 가져왔다. 저런 식이라는 거지 저렇게 만든다는 소리가 아님!!) 이런 식으로 암호화 시켜서 저장하면 되지 않을까 싶은데 하는 방법을 모르니 구글의 힘을 빌려보았다. https://mkil.tistory.com/273 [Spring] 스프링 파일업로드/ file upload/ 파일업로드 한글깨짐 기본적인 Controller와 jsp 경로 호출 등 셋팅은 되어있다는 가정하에 시작한다. (필자는 STS를 사용 > http://mkil.tistory.com/26..
기본적으로 JAVA는 camelCase를 사용하고 MySQL에서는 Snake_case를 권장한다고 한다. Spring boot 공부를 하면서 camelCase와 Snake_case 중 어떤걸 사용해야할 지 몰라서 왔다갔다 제멋대로 사용하고 있었는데 두 표현방식을 적절한 위치에 적절하게 사용해야한다고 한다!!! 로마에선 로마법을 따라야하듯이 말이다. 그럼 둘 사이를 어떻게 왔다갔다 하느냐.. 역시나 방법은 존재한다! 오늘은 Snake_case to camelCase로 형식 변환을 하는 방법을 알아보자. 클라이언트 서버 (Jackson) 클라이언트에서는 snake_case를, 서버에서는 camelCase를 사용하므로 클라이언트 측에서 파라미터를 받아올 때 이걸 camelCase로 바꿔주어야 Dto가 해당 파..
2021.12.24 - [개발자가 될 때까지/Spring boot] - [Spring] 스프링과 스프링부트 , 빈(Bean) [Spring] 스프링과 스프링부트 , 빈(Bean) https://velog.io/@sorzzzzy/series/Spring-Boot-RoadMap-1 시리즈 | Spring Boot - RoadMap 1 - sorzzzzy.log 🏷 검증 요구사항 상품 관리 시스템에 새로운 요구사항이 추가되었다 ✔️ 요구사항: 검증 로직 추가.. annajin.tistory.com 위 게시글을 작성하고 나서 시간 조금 지나고 나니 당시에는 그렇구나 하고 넘어갔던 부분에 대한 개념정리가 많이 부족해 그래서 이걸 왜 하더라? 라는 물음이 생겨 다시 정리해보기로 했다. https://steady-h..
스프링 부트를 사용하면서 컨트롤러를 만들 때, 파라미터를 넘겨받는 방법으로 @RequestParam만 알고있었는데 또 다른 방법인 @PathVariable이 있다는 걸 알게되어 두가지 모두 정리해보고자 한다. @RequestParam 단일 파라미터를 받아올 때 사용하는 어노테이션이다. @GetMapping("/search_user") public UserDto searchUser( @RequestParam("name") String name, @RequestParam(value = "age", required=true) int age // 위와 같음 ) { return userService.getUser(index); } 메소드 파라미터 값을 넣는 괄호 안에 위와 같이 사용할 수 있다. 위 코드를 보면 ..
Lombok(롬복)이란? 스프링 부트에서 Model 객체(DTO, VO, Domain)를 만들 때, 다 비슷하게 생긴 Getter와 Setter를 굳이 만들어줘야하는 번거로움이 있었다. 물론 빠르게 만드는 키가 있기는 하지만 필드명을 변경하거나 추가할 때 실수로 getter/setter를 변경하지 않아서 오류가 나는 경우에 번거롭다. Lombok은 이렇게 불필요하게 반복되는 코드들을 어노테이션을 통해 getter/setter, ToString 등을 자동으로 처리해주는 편리한 라이브러리이다. 어노테이션 종류 Lombok공식 문서 아래에 쓰인 어노테이션들 이외에도 공식문서에 더 많은 어노테이션들이 있다. 어노테이션 설명 @Getter, @Setter getter(), setter() 메소드 생성 @Equal..
Spring MVC Request Lifecycle의 구조 Filter Web Application의 전역적인 로직을 담당한다. 전체적인 필터링(설정)을 하는 곳 대표적으로 Encoding이 있다. DispatcherServlet Request에 대해 어느 컨트롤러로 매핑시킬 것인지 배치하는 역할을 한다. 들어오는 모든 Request를 우선적으로 받아 처리해주는 서블릿 HandlerMapping에게 Request에 대해 매핑할 Controller검색을 요청한다. HandlerMapping으로부터 적절한 Controller정보를 반환받아 해당 Controller와 매핑시킨다. HandlerMapping DispatcherServlet으로부터 검색을 요청받은 Controller를 찾아 정보를 리턴해준다. H..
https://velog.io/@sorzzzzy/series/Spring-Boot-RoadMap-1 시리즈 | Spring Boot - RoadMap 1 - sorzzzzy.log 🏷 검증 요구사항 상품 관리 시스템에 새로운 요구사항이 추가되었다 ✔️ 요구사항: 검증 로직 추가 타입 검증 가격, 수량에 문자가 들어가면 검증 오류 처리 필드 검증 상품명: 필수, 공백X 가 velog.io 스프링(Spring) 스프링은 자바 기반의 웹 어플리케이션을 만들 수 있는 프레임워크이다. 스프링 특징 스프링은 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 생명주기(Life cycle)을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다. 스프링의 가장 큰 특징으로 IoC와 DI가 ..