스프링 프로젝트를 생성해주는 도구초심자가 스프링 설정이 힘들기에 나온 도구https://start.spring.io/Generate위에 설정 그대로 설치EXPLORE설치 될 파일 미리 확인설치된 zip 파일은 원하는 곳에 풀어준다open project실행하여
1970년 대에 들어서 용어가 나왔으며, 이는 벌써 50년이 넘어가는 역사를 가지고 있다이전 C언어 처럼 실행하고자 하는 순서대로 명령어를 입렵해서 실행되는 절차지향이 주를 이뤘으며, 이러한 방법으로 코딩하는 언어들을 절차지향 언어라고 한다이 때에는 프로그램의 단위가
객체의 속성(Variable)을 보호하기 위해서 사용객체의 캡슐화는 션실 세계에서도 볼 수 있다컴퓨터 본체 안에 수 많은 부품이 있지만, 전원을 켜기 위해서는 메인보드에 전기 신호를 직접 주는 것이 아닌, 외부 케이스에 있는 전원 버튼을 통해서 상태 속성을 On/Off
좋은 소프트웨어 설계를 위해서는 결합도(coupling)는 낮추고 응집도(cohesion)은 높여야 한다결합도모듈(클래스)간의 상호 의존 정도를 나타내는 지표로써 결합도가 낮으면 모듈간의 상호 의존성이 줄어들어서 객체의 재사용 및 유지보수가 유리응집도하나의 모듈 내부에
POJO(Plain Old Java Object)순수한 자바 오브젝트역사를 거슬러 올라가보면, 예전 EJB(Enterprise JavaBeans)가 인기를 끌고, 많이 사용하던 시절에는 단순한 자바 오브젝트를 사용해서 개발하는 것이 아닌, EJB에 종속적인 부분으로 개
자주 사용하는 설계 패턴을 정형화해서 이를 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 설계알고리즘과 유사 하지만, 명확하게 정답이 있는 형태는 아니며, 프로젝트의 상황에 맞추어 적용GOF 디자인 패턴소프트웨어를 설계할 때는 기존에 경험이 매우 중요하다, 그러나
Singleton Pattern은 어떠한 클래스(객체)가 유일하게 1개만 존재 할 때 사용이를 주로 사용하는 곳은 서로 자원을 공유할 때 사용하는데, 실물 세계에서는 프린터가 해당되며, 실제 프로그래밍에서는 TCP Socket 통신에서 서버와 연결된 connect 객체
Adapter는 실생활에서는 110v를 220v로 변경해주거나, 그 반대로 해주는 흔히 돼지코 라고 불리는 변환를 예로 들 수 있다호환성이 없는 기존 클래스의 인터페이스를 변환하여 재상요할 수 있도록 한다SOLID 중에서 개방폐쇄 원칙(OCP)를 따른다JAVA Proj
Proxy는 대리인 이라는 뜻으로써, 뭔가를 대신해서 처리하는 것Proxy Class를 통해서 대신 전달하는 형태로 설계되며, 실제 CLient는 Proxy로 부터 결과를 받는다Cache의 기능으로도 활용이 가능하다SOLID 중에서 개방폐쇄 원칙(OCP)과 의존 역전
Decorator Pattern은 기존 뼈대(클래스)는 유지하되, 이후 필요한 형태로 꾸밀 때 사용한다. 확장이 필요한 경우 상속의 대한으로도 활용한다. SOLID중에서 개방폐쇄 원칙(OCP)과 의존 역전 원칙(DIP)를 따른다예로, 에스프레소(뼈대, 원액)가 있다면,
Observer Pattern은 관찰자 패턴이라 하며, 변화가 일어 났을 때, 미리 등록된 다른 클래스에 통보해주는 패턴을 구현한 것많이 보이는 곳은 event listener에서 해당 패턴을 사용 하고 있다Package : observerInterface : IBut
Facade는 건물의 앞쪽 정면 이라는 뜻을 가진다.(뒤쪽은 모른다)여러 개의 객체와 실제 사용하는 서브 객체의 사이에 복잡한 의존관계가 있을 때, 중간에 facade라는 객체를 두고, 여기서 제공하는 interface만을 활용하여 기능을 사용하는 방식이다.Facade
Strategy Pattern는 전략 패턴으로 불리며, 객체지향의 꽃이다유사한 행위들을 캡슐화하여, 객체의 행위를 바꾸고 싶은 경우 직접 변경하는 것이 아닌 전략만 변경하여, 유연하게 확장하는 패턴, SOLID 중에서 개방폐쇄 원칙(OCP)과 의존역전 원칙(DIP)를
(World Wide Web, WWW, W3)은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 잇는 전 세계적인 정보 공간Web의 용도는 다양하게 나눌 수 있다Web Sitegoogle, naver, daum, facebook 등 HTML로 구성된 여러 사이
클라이언트와 서버가 서로 독립적으로 분리 되어 있어야 한다요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다클라이언트는 서버의 응답을 Cache(임시저장)할 수 있어야 한다클라이언트가 Cache를 통해서 응답을 재사용할 수 있어야 하며, 이를 통해서 서버의 부하를
인터넷에서 특정 자원을 나타내는 주소 값, 해당 값은 유일 하다.(응답은 달라질 수 있다)요청 : https://www.fastacampus.co.kr/resource/sample/1응답 : fastacampus.pdf, fastcampus.docx인터넷 상에
HTTP(Hyper Text Transfer Protocol)로 RFC 2616에서 규정된 Web에서 데이터를 주고 받는 프로토콜이름에는 하이퍼텍스트 전송용 프로토콜로 정의되어 있지만 실제로는 HTML, XML, JSON, Image, Voice, Video, Java
Spring Boot는 단순히 실행되며, 프로덕션 제품 수준의 스프링기반 어플리케이션을 쉽게 만들 수 있다.Spring Boot 어플리케이션에는 Spring 구성이 거의 필요하지 않다Spring Boot java-jar로 실행하는 Java 어플리케이션을 만들 수 있다S
웹 서버 테스트를 위한 환경 설치간단 테스트 결과 및 크롬 네트워크 결과https://www.google.com/search?q=%EC%9B%B9%EC%8A%A4%ED%86%A0%EC%96%B4&oq=%EC%9B%B9%EC%8A%A4%ED%86%A0%EC%96
Package : controllerClass : GetApiContollerGetApiContoller.java@GetMappingcontoller + click@GetMapping("/hello") == @GetMapping(path = "/hello")defaul
JSON한글 깨질 시https://milenote.tistory.com/37?category=963202https://start.spring.io/resources / application.properties, server.port = 8090Pack
Package : controllerClass : PutApiControllerPackage : dtoClass : PostRequestDto, CarDtoPostRequestDto.javaCarDto.javaPutApiContoller.java식별자가 달라서 매칭이
Package : controllerClass : DeleteApiControllerdelete -> 리소스 삭제리소스가 있던 없던 200 OKDeleteApiController.java
Package : controllerClass : ApiControllerTEXT를 내려주는 일을 흔하지 않다, 흔히 JSON을 내려준다ApiController.java동작 원리request -> object mapper -> object -> method -> obj
main이 아닌 test에서 testTEXT JSON -> ObjectObject -> TEXT JSONcontroller req json(text) -> objectresponse object -> json(text)object mapper get method(get
Controller로서 동작하기 위해서는 어노테이션해당 Class는 REST API 처리하는 Controller전통적인 Spring MVC의 컨트롤러인 @Controller와 Restuful 웹서비스의 컨트롤러인 @RestController의 주요한 차이점은 HTTP
Spring 1.0 버전은 2004년 3월 출시지난 20년 까지의 세월 동안 단 한번도 자바 엔터프라이즈 어플케이션 개발 최고의 자리를 차지스프링 프레임워크 구성은 20여가지로 구성(https://spring.io/projects/spring-boot)이러한
IoC(Inversuib of Contol)스프링에서는 일반적인 Java 개겣를 new로 생성하여 개발자가 관리하는 것이 아닌 Spring Container에 모두 맡긴다즉, 개발자에서 -> 프레임워크로 제어의 객체 관리의 권한이 넘어 갔음으로 "제어의 역전"이라고 한
@Bean, @Component의 차이@Bean은 클래스에 붙일 수 없고 메소드에 붙일 수 있다@Component은 클래스에 붙일 수 있다@Configuration은 여러 개의 @Bean 등록을 시켜준다관점 지향 프로그램스프링 어플리케이션 대부분 특별한 경우를 제외하고
Json Node에 접근하여 제어해보기Java Proejct로 만드는 대신 Gradle Proejct로 생성(object_mapper)Object Mapper 사용을 위한 라이브러리 디펜던시에 추가Package : dtoClass : User, CarCar.javaUs
1. Spring Boot Annotation
Validation이란 프로그래밍에 있어서 가장 필요한 부분이다, 특히 Java에서는 null 값에 대해서 접근 하려고 할 때 null pointer exception이 발생함으로, 이러한 부분을 방지하기 위해서 미리 검증을 하는 과정을 Validation이라고 한다단
1\. AssertTrue / False와 같은 method 지정을 통해서 Custom Logic 적용 가능2\. ConstraintValidator를 적용하여 재사용이 가능한 Custom Logic 적용 가능이전 Validate 프로젝트 지속해서 진행ApiContro
Web Application의 입장에서 바라 보았을 때, 에러가 났을 때 내려줄 수 있는 방법은 많지 않다1\. 에러 페이지2\. 4XX Error or 5XX Error3\. Client가 200외에 처리를 하지 못 할 때에는 200을 내려주고 별도의 에러 Messa
이전 1 ~ 3까지는 클라이언트에게는 가독성이 나쁜 코드였기에 조금 수정해보자GlobalControllerAdvice.java -> RestApiControllerAdvice.java로 변경특정 패키지 안의 클래스로 범위 고정@RestControllerAdvice(ba
Filter란 Web Application에서 관리되는 영역으로써 Spring Boot Framework에서 Client로 부터 오는 요청/응답에 대해서 최초/최종 단계의 위치에 존재하며, 이를 통해서 요청/응답의 정보를 변경하거나, Spring에 의해서 데이터가 변환
async project, web, lombokPackage : controller, serviceClass : ApiController, AsyncServiceMain AsyncApplication.java@EnableAsync스프링의 Async 어노테이션을 감지하며
지금까지 살펴본 부분은 항상 Server의 입장에서 API를 제공하는 방법에 대해서 학습Back-end에서 Client로 다른 Server와의 연결은 필수!
https://advenoh.tistory.com/46client Project, spring web, server.port = 8080server Project, Spring web, lobok, server.port = 9090Package : contro
https://developers.naver.com/docs/common/openapiguide/Header에 발급받은 값을 입력utf-8 encoding을 해주어야 한다%로 된 값 확인 후 입력talend api test랑 비교하면서 작성controller
테스트 주고 개발에서 사용하지만, 코드의 유지 보수 및 운영 환경에서의 에러를 미리 방지하기 위해서 단위 별로 검증 하는 테스트 프레임워크작성한 코드가 기대하는 대로 동작 하는지 검증 하는 절차Java 기반의 단위 테스트를 위한 프레임워크Annotation 기반으로 테
Spring Intializr / web, lomboc / spring-calculatorPackage : componentClass : Calculator, MarketApi, DollorCalculatorInterface : ICalculatorICalculator
Java코드의 커버리지를 체크하는 라이브러리결과를 html, xml, csv로 확인 가능하다이전 web test project 그대로 진행build.gradle에 plugins 추가Jacoco를 사용하기 해서는 test를 실행시켜 주어야 한다verification 내부
Swagger란 개발한 REST API를 편리하게 문서화 해주고, 이를 통해서 관리 및 제3의 사용자가 편리하게 API를 호출해보고 테스트 할수 있는 프로젝트Spring Boot에서는 간단하게 springfox-boot-starter를 gradle dependdenci
spring initalizr / swagger / web, lombok / swagger은 maven repository에서 따로 확인하여 설치dependencies에 추가Package : controllerClass : ApiControllercontroller /
네이버 지역 검색 APIBootStrapSpring BootREST APIThymeleaf타임리프thymeleaf 는 자바 라이브러리이며, 웹과 웹이 아닌 환경 양쪽에서 텍스트, HTML, XML, Javascript, CSS 그리고 텍스트를 생성할 수 있는 템플릿 엔
Spring Initalizrrestaurant, gradle, Spring Web, Lombok, ThymeleafPackage : dbInterface : MemoryDbRepositoryIfsAbstract : MemoryDbRepositoryAbstractCla
naver open api / 서비스 api / 검색 / 지역 & 이미지 활용해당 api 정보는 resources / applicaition.properties에서 관리applicaition.properties를 applicaition.yaml로 변경Package :
프론트 코드 출처https://github.com/steve-developer/fastcampus-springboot-introduction/tree/master/10.%20%EB%84%A4%EC%9D%B4%EB%B2%84%20%EC%A7%80%EC%97%AD
spring initalizrname : communityproject : gradle projectlanguage : javajava : 8dependencies : H2 Database, Lombok, Spring Web, Spring Configuration Pr