이번 포스팅은 REST API란 무엇인지알아보는 시간을 가지겠습니다.1) REST 란 무엇인가?먼저 REST가 무엇인지 부터 알아보겠습니다.REST는 "REpresentational State TransFer" 의 약자로, 자원의 이름으로 구분하여 해당 자원의 상태를 교환하는 것을 의미합니다. 자원- 흔히 말하는 데이터- 데이터의 상태- ex) 시간이라는 개념이있다면 지금 과 말하고있는 시간을 상태라고한다. REST는 기본적으로 웹의 기존 기술과 HTTP프로토콜을 그대로 활용하기때문에, 웹의 장점을 최대한 활용할수 있는 아키텍처 스타일 입니다. HTTP URI(Uniform Resource Identifier)를 통해 자원을 명시하고 HTTP Method를 통해 자원을 교환하는것입니다.HTTP Met..
이번 포스팅은 Java 컬렉션에 대해 이해하고 알아보는 시간을 가져보겠습니다. 1) 컬렉션 프레임웍(Collection framework) 이란? 다수의 데이터를 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 컬렉션을 다루기 위한 표준화된 프로그래밍 방식이다. java.utill 패키지에 포함되며, JDK1.2부터 제공한다. (1.2 전에도 존재하였으니 표준화가 되어있지 않았다.) 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공합니다. 아래는 프레임웍의 상속 구조입니다. 2) 컬렉션 프레임웍의 인터페이스 다수의 데이터를 다루는 핵심 인터페이스는 List, Set , Map 3가지가 있습니다. 각각의 특성을 알아보겠습니다. 인터페이스 특징 List 순서가 있는 데..
Maven과 Gradle라 하면은 Java 대표적인 빌드관리툴이다. 이번포스팅에서는 두 개의 빌드 관리 도구의 차이점을 알아보겠다. 빌드 관리 도구 먼저 빌드 관리 도구가 무엇인지? 알아야 한다. 1. 프로젝트에서 필요한 xml, properties, jar 파일들을 자동으로 인식하여 빌드해 주는 도구다. 2. 소스 코드를 컴파일, 테스트, 정적분석 등을 하여 실행가능한 앱으로 빌드를 해준다. 3. 프로젝트 정보 관리, 테스트 빌드, 배포 등의 작업을 진행해 준다. 4. 외부라이브러리를 참조하여 자동으로 다운로드 및 업데이트의 관리를 해준다. Java의 대표적인 빌드 도구에는 : Ant, Maven, Gradle 등이 있다. 예전에는 필요한 라이브러리가 있다면 직접 다운을 받아서 추가를 했고 버전업이 됐..
이번 포스팅은 Maven에 특징인 LifeCycle에 대해 공부한 내용을 작성해 보겠다. 라이프 사이클 (LifeCycle) 먼저 메이븐을 이해하기 위해서는 Plugin, Phase, Goal, LifeCycle을 이해해야 한다. 위 네 가지가 기본 개념이다. Plugin 메이븐에서 제공하는 모든 기능은 플러그인을 기반으로 동작한다. 메이븐은 자체는 기본적인 기능만 가지고 있고 대부분의 기능들은 플러그인을 통해 제공하도록 되어있기 때문이다. 플러그인들은 몇 가지 Goal을 가지고 있고 Goal은 플러그인에 포함되어 있는 명령이다. 즉, 플러그인은 하나 이상의 Goal의 집합체이다. 메이븐에서 활용할 수 있는 대부분의 플러그인은 아래 사이트에서 제공하고 있다. 아파치 메이븐 사이트 : https://mav..
이번 포스팅은 스프링부트에서 database를 사용하기 위한 방법을 작성해보려고 한다. 전제는 스프링부트를 생성할 때 database관련된 의존성을 넣지 않고 생성하고 시작한다. 빌드는 gradle이다. 의존성 추가 스프링 부트에는 Dependency Management라는 의존성 관리 도구가 있다 이 도 구는 애플리케이션에 필요한 라이브러리들을 다운로드할 수 있게 도와주는 도구다. 스프링 부트는 어떤 한 라이브러리를 다운로드할 때 항상 라이브러리가 의존하는 다른 라이브러리들도 같이 다운로드할 수 있도록 의존성관리를 해준다. 그래서 dependencyManagement 영역에 정의된 의존성들 중 하나라도 사용하게 된다면 버전을 명시하지 않아도 spring-boot-dependencies가 관리하는 버전을..
이클립스에서 dbeaver 플러그인을 사용했던 것처럼 IDE 자체에서 DB를 사용한 경험이 있다. 이번에는 intellij에서 db를 사용하기 위해 찾아본 결과 intellij자체에 DB Tool자체가 있어서 사용해보려고 한다. 하지만 문제점은 Community에서는 DB Browser를 제공하지 않는다. Community에서도 DB Browser를 사용하기 위해서는 별도로 DB Navigat라는 플러그인을 설치해야 한다. 플러그인 설치 Database Navigator을 설치한 후 IDE를 재시작해주자 그 후 위에 처럼 View -> Tool Windows -> DB Browser을 선택해 주자. 그럼 왼쪽상단에 위와 같은 화면이 나타날 텐데 자기가 사용하는 데이터베이스를 클릭해 주자. DB Conne..
문제1 Fruit @Entity public class Fruit { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id = null; @Column(nullable = false, length = 20) private String name; @Column(nullable = false) private Long price; @Column(nullable = false, name = "stocked_date") private LocalDate warehousingDate; @Column(nullable = false) private int sold = 0; public Fruit() { } public Fruit(String na..
문제 Controller @RestController public class FruitController { private final FruitService fruitService; public FruitController(FruitService fruitService) { this.fruitService = fruitService; } @PostMapping("/api/v1/fruit") public void saveFruit(@RequestBody FruitRequest request) { fruitService.saveFruit(request); } @PutMapping("/api/v1/fruit") public void saleFruit(@RequestBody SoldOutFruitRequest ..
문제 1 Domain public class Fruit { private String name; private Long price; private LocalDate localDate; public Fruit(String name, Long price, LocalDate localDate) { this.name = name; this.price = price; this.localDate = localDate; } public String getName() { return name; } public Long getPrice() { return price; } public LocalDate getLocalDate() { return localDate; } } DTO public class FruitCreate..