내일배움캠프(Sparta)/Spring25 HTTP 데이터를 객체로 처리하는 방법 HTTP 데이터를 객체로 처리하는 방법@ModelAttribute: Body 부분에 들어온 Query String 방식의 데이터를 객체에 maaping해서 가져올 수 있음.해당 annotation 생략 가능 form 태그 POSTPOST http://localhost:8080/hello/request/form/model데이터가 HTTP Body에 name=Robbie&age=95와 같은 형태로 담겨 서버로 전달됨해당 데이터를 Java의 객체 형태로 받는 방법은 @ModelAttribute annotation을 사용한 후 Body 데이터를 받아올 객체로 선언// POST http://localhost:8080/hello/request/form/model // Header // Content type: ap.. 2023. 11. 2. [Spring] Jackson / Path Variable / Request Param Jackson : Java 객체와 JSON 데이터 간의 변환을 자동으로 처리해주는 라이브러리 Oject ➡️ JSON 타입의 String 변환 가능 (반대로, JSON 타입의 String ➡️ Oject 변환 가능) 3.0 버전 이후 Spring은 Jackson과 관련된 API를 제공함으로써, JSON 데이터를 처리하지 않아도 자동으로 처리해줌 Object To JSON (객체 ➡️ JSON) Get 메서드 필요 ObjectMapper : 객체를 JSON으로 serialization or JSON을 객체로 deserialization할 때 사용하는 Jackson 라이브러리의 클래스 writeValueAsString() 이라는 메서드를 가지고 있음. 해당 메서드에 Object 객체를 매개변수로 넣어주면 S.. 2023. 11. 2. [Spring] 데이터를 Client에 반환하는 방법 브라우저를 통해 HTML, CSS, JS 파일을 반환하는 것이 서버의 주 업무일까? ➡️ ❌. HTML이 아니라 MySQL 같은 데이터베이스 서버에서 받아온 데이터를 Client에 반환해주면 Client에서 해당 데이터를 가지고 브라우저를 통해 사용자에게 어떠한 결과 값을 보여주는 식으로 발전해가고 있음. 그래서 요즘은 JSON 형태로 정보를 많이 반환하고 있음. 클라이언트에서 최소 Request를 하면 정적 혹은 동적 HTML 반환 그 이후에는 AJAX 를 통해 비동기적으로 서버쪽으로 요청이 들어옴 서버는 해당 요청에 맞게 JSON형태로 데이터 반환 (JSON 형태의 타입은 자바에서 존재하지 않음. 그래서 JSON 형태로 클라이언트에 반환해줘야 함.) JSON 형태로 클라이언트에 반환해주는 법 publ.. 2023. 11. 2. [Spring] Controller / 정적 페이지 / 동적 페이지 Controller 장점 SpringMVC가 효율적인 API처리를 위해 만들어낸 Front Controller 패턴은 개별 Controller의 작업을 단순화 하는 데 도움이 됨. @Controller : @Controller annotation이 명시되어 있는 클래스가 Controller의 역할을 수행할 수 있도록 등록해줌 해당 annotation을 달았을 때 문자열로 반환을 하게 되면 resourses/templates 쪽에서 html 파일을 찾아 리턴하는 이름을 가진 html 파일이 있는지 없는지 확인해 해당 html을 반환함. @ResponseBody html 파일의 이름이 아닌 순수하게 문자열을 반환하는 경우 @ResponseBody annotation 사용 API 경로가 중복은 될 수 있지만 .. 2023. 11. 2. [Spring] Spring MVC / Front Controller MVC : Model-View-Controller 의 약자. 소프트웨어 디자인 패턴 중 하나. 소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리 코드의 재사용성과 유지 보수성을 높여 개발자들 간의 협업을 용이하게 함. Model : 각각의 데이터와 비즈니스 로직을 담당 데이터베이스와 연동, 데이터를 저장하고 불러오는 등의 작업을 수행 View : 사용자 인터페이스를 담당 사용자가 보는 화면이나 버튼, 폼 등을 디자인하고 구현 Controller : Model과 View 사이의 상호작용을 조정하고 제어 사용자의 입력을 받아 Model에 전달하고 Model의 결과를 바탕으로 View를 업데이트함 Spring MVC : 스프링에서 MVC 디자인 패턴을 적용.. 2023. 11. 1. [Spring] 테스트 코드 / Lombok / application.properties 서비스를 배포하기 전 버그를 최대한 많이 찾아내기 위해 테스트를 많이 해야 함. 테스트 방법 블랙박스 테스팅 : 소프트웨어 내부 구조나 동작원리를 모르는 사용자 입장에서 웹 서비스의 동작은 검사하는 방법 장점 누구나 테스트 가능 단점 기능이 증가될수록 테스트의 범위 증가 (시간이 갈수록 테스트하는 사람이 계속해서 늘어나야 됨.) 테스트하는 사람에 따라 테스트 퀄리티가 다를 수 있음 (QA 직군이 있는 이유) 개발자 테스트 : 개발자가 직접 본인이 작성한 코드를 검증하기 위해 테스트 코드를 작성하는 것 장점 빠르고 정확한 테스트 가능 테스트 자동화가 가능 배포시 테스트코드가 수행되어 동작 검증해줌 리팩토링이나 기능 추가할 때 더욱 편리 단점 개발 시간이 오래 걸림 유지보수 비용 스프링에서는 테스트코드를 작.. 2023. 11. 1. [Spring] Gradle / Server / HTTP Gradle : build 자동화 시스템 Gradle을 사용하면 자바의 소스코드를 실행 가능한 JAR 파일로 만들어 줌 작성한 java 코드를 설정에 맞게 자동으로 build를 해줌. build.gradle : gradle 기반의 build 스크립트 스크립트를 작성하면 소스코들를 build하거나 라이브러리들의 의존성을 쉽게 관리 가능 Groovy나 Kotlin 언어로 작성 가능 라이브러리를 관리함 개발하면서 필요로 하는 외부 라이브러리들을 dependencies 부분에 작성하면 Gradle이 해당 라이브러리들을 Maven Repository 라는 외부 저장소에서 자동으로 다운로드 함. 라이브러리들 간에 충돌이 나지 않고 쉽게 관리할 수 있게끔 도와줌 gradle이 가져온 외부 라이브러리들은 왼쪽 Proj.. 2023. 10. 31. 이전 1 2 3 다음