간단한 API 작성
2021. 7. 21. 13:35
Spring
📖 왜 API는 JSON으로 쓰일까? API형식으로 데이터를 받을 때, JSON을 사용한다. 왜 그럴까? 장점이 있기 때문이다. 어떤 장점? 바로 범용성이다. 클라이언트는 사실 수도 없다. 웹 기반의 브라우저, 앱 기반의 스마트폰, IoT 등… 수도 없다. 수많은 클라이언트 별, 맞춤 뷰 페이지를 만드는 것은 어렵다. 이를 해결하는 방법이 역할 분담이다. 서버는 데이터만 전달하고, 클라이언트는 이를 받아 화면에 보여주기로 하는 것이다. 이때 데이터는 JSON으로 나타낸다 단순하게 스프링이 크게 2가지 다른 방식을 제공한다고 이해하면 된다. 화면 파일을 찾는 기능 HTTP에 바로 응답하는 기능(@ResponseBody) @ResponseBody를 사용하면 경로라는 개념이 없다. HTTP 메시지 바디에 직접..
롬복(Lombok) 과 리펙토링(Refactoring)
2021. 7. 21. 10:21
Spring
📌 왜 롬복(Lombok)을 쓰는가? 모델 Class(VO, DTO, Entity) 를 만들 때, 생성자, 접근자, 설정자, toString() 등 매번 만들어야 하는 번거로움이 있다. 개발 초기에는 모르겠지만 하지만 잦은 수정과 필드명 변경 추가에 따라 관리가 쉽지 않아질 수 있다. 그래서 롬복(Lombok)은 자바 클래스를 만들때 자주 사용되는 getter/setter나 toString 등의 코드를 애너테이션으로 대체해서 선언하고 java 코드를 컴파일 할 때 그에 맞는 코드를 생성해주는 것이다. 기존 방식의 문제점 멤버변수를 제어하기 위해 모델 객체마다 반복적으로 메소드들을 생성해야 한다. IDE에서 generate를 이용해서 편하게 생성할 수 있지만, 변수명이 바뀌면 다시 만들어야 한다. 사용 파..
JPA 레포지토리, DB에 저장하기
2021. 7. 20. 13:42
Spring
📖 JPA 와 레포지토리 데이터를 저장하려면, DB에 넘겨야 한다. 하지만 직접 데이터를 넘기기가 쉽지 않다. 왜냐하면 서버와 DB가 사용하는 언어가 서로 다르기 때문이다. 스프링의 경우 서버는 자바를 사용하고 DB는 SQL을 사용하기 때문에 서로의 언어를 이해할 수 없다. 이를 위한 라이브러리가 JPA이다. JPA는 DB와이 소통을 보다 쉽게 해 준다. 그 핵심이 되는 인터페이스를 레포지토리(repository)라 한다. 레포지토리가 DB와 데이터를 주고 받으려면, 알맞은 규격이 필요하다. 이를 엔티티(entity)라고 한다. 📖 DB 테이블과 레코드 DB는 데이터를 테이블(table)로 관리한다. 엑셀이라 생각하면 쉽다. 리파지터리에서 엔티티 객체를 보내면, 이를 받아 테이블에 저장한다. 이렇게 엔티..
폼 (form) 데이터 주고 받기
2021. 7. 16. 11:44
Spring
우선 HTTP 프로토콜의 개념부터 간단하게 살펴보자 GET: 데이터 조회 요청 POST: 데이터 생성 요청 PUT/PATCH: 데이터 수정 요청 DELETE: 데이터 삭제 요청 (수정) HTTP프로토콜에 공부하면서 추가로 자세히 작성한 포스팅을 첨부한다. https://jminie.tistory.com/116?category=1008953 HTTP와 SSL 그리고 HTTPS 📌 HTTP HTTP란 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. 쉽게 말해 HTML, CSS, JS, 이미지, 동영상 들과 같은 컨텐츠들을 서버와 클라이언트가 주고받기 jminie.tistory.com form 태그 주 속성 데이터 전송을 위한 form 태그의 주요 속성은 'method'와 'a..
뷰 레이아웃
2021. 7. 16. 10:12
Spring
레이아웃 화면을 구분하여 배치하는 것. 이를 레이아웃(layout)이라 한다. 웹 페이지는 반복되는 부분이 존재하는데, 이를 파일로 나누면 좋다. 이를 통해 코드의 중복을 줄일 수 있다. 만약 웹사이트 하나에 페이지가 수천 개 있다고 가정하자 만약 어느 사이트의 어느 요소가 변경된다 하면 이 수천 개의 페이지를 다 수정해 주어야 한다 하지만 레이아웃을 통해 부분부분을 각각의 하나의 파일로 빼놓으면 편리할 것이다. 우선 그림에서와 같이 간단히 header, content, footer 로 나누어 보자 뷰 나누기 부트스트랩을 통해 간단한 Nav Bar를 가져와 header.mustache 파일에 넣어준다 Navbar Home Link Dropdown Action Another action Something ..