분류 전체보기 132

19. SQL 연습하기

제약조건AUTO_INCREMENT : 컬럼의 값이 중복되지 않게 1씩 자동으로 증가하게 해줘 고유번호를 생성해 준다.CREATE TABLE 테이블이름( 필드이름 필드타입 AUTO_INCREMENT, // id bigint AUTO_INCREMENT, ...);NOT NULL : 해당 필드는 NULL 값을 저장할 수 없게 된다.CREATE TABLE 테이블이름( 필드이름 필드타입 NOT NULL, ...); UNIQUE : 해당 필드는 서로 다른 값을 가져야만 한다.CREATE TABLE 테이블이름( 필드이름 필드타입 UNIQUE, ...);PRIMARY KEY : 해당 필드는 NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가지게 된다.CREATE TABLE ..

18. SQL

개념SQL은 'Structured Query Language'의 약자로 RDBMS에서 사용되는 언어이다. 수 많은 정보를 Database에서 조작하고 관리하기 위해서는 SQL 언어를 사용해야 한다. 국제 표준화 기구에서 SQL에 대한 표준을 정해서 발표하고있다. 하지만 DBMS를 만드는 회사가 여러 곳이기 때문에 DBMS마다 표준 SQL을 준수하되, 각 제품의 특성을 반영하기 위한 약간의 차이가 존재한다.DDLData Definition Language의 약자로 테이블이나 관계의 구조를 생성하는데 사용한다. CREATE : 새로운 데이터베이스 및 테이블을 생성해 준다.CREATE DATABASE 데이터베이스이름;CREATE TABLE 테이블이름( 필드이름1 필드타입1, 필드이름2 필드타입2, ..

17. Database

개념Database를 한 마디로 정의하면 '데이터의 집합'이라고 할 수 있다. DB는 우리가 매일 사용하는 카톡 메시지, 인스타그램의 사진등의 정보를 저장하고 관리해준다. 용어정리DBMS DBMS는 'Database Management System'의 약자로 Database를 관리하고 운영하는 소프트웨어를 의미한다. ----- RDBMS RDBMS는 'Relational DBMS'의 약자로 관계형 데이터베이스라고 불린다. RDBMS는 테이블이라는 최소 단위로 구성되며, 이 테이블은 열(column)과 행(row)으로 이루어져 있다. 테이블간 FK(Foreign Key)를 통해 다른 데이터를 조합해서 함께 볼수 있다라는 장점이 있다.

15. Create, Read 구현하기(DTO)

DTO란 무엇일까? DTO(Data Transfer Object)는 데이터 전송 및 이동을 위해 생성되는 객체를 의미한다. Client에서 보내오는 데이터를 객체로 처리할 때 사용된다. 또한 서버의 계층간의 이동에도 사용된다. 그리고 DB와의 소통을 담당하는 Java 클래스를 그대로 Client에 반환하는 것이 아니라 DTO로 한번 변환한 후 반환할 때도 사용된다. 특별한것이 아니라 그냥 자바 클래스이지만 의미를 부여한 것이다. Create 구현1. 메모 데이터를 저장할 Memo 클래스 생성 후 아래 코드 작성package com.sparta.memo.entity;import lombok.Getter;import lombok.NoArgsConstructor;import lombok.Setter;@Gett..

13. HTTP 데이터를 객체로 처리하는 방법

먼저 request 패키지에서 Star 클래스를 추가로 만들어준다. 그 후 아래의 코드를 작성한다.package com.sparta.springmvc.request;public class Star { String name; int age; public Star(String name, int age) { this.name = name; this.age = age; }}@ModelAttribute이전에 만들어둔 RequestController에 아래의 코드를 추가한다.// [Request sample]// POST http://localhost:8080/hello/request/form/model// Header// Content type: applicatio..

12. Path Variable과 Request Param

Path VariableClient 즉, 브라우저에서 서버로 HTTP 요청을 보낼 때 데이터를 함께 보낼 수 있다. 서버에서는 이 데이터를 받아서 사용해야 하는데 데이터를 보내는 방식이 한 가지가 아니라 여러 가지가 있기 때문에 모든 방식에 대한 처리 방법을 학습해야 한다. templates 폴더에 hello-request-form.html 파일을 만든다. 아래의 코드를 작성GET /star/{name}/age/{age} 이름: 나이: 전송GET /hello/request/form/param 이름: 나이: 전송POST /hello/request/form/param 이름: 나이: 전송POST /hello/reques..

11. Jackson이란 무엇일까?

Jackson 라이브러리Jackson은 JSON 데이터 구조를 처리해주는 라이브러리이다. Object를 JSON 타입의 String으로 변환해줄 수 있다. JSON 타입의 String을 Object로 변환해줄 수 있다. Spring은 3.0버전 이후로 Jackson과 관련된 API를 제공함으로써, 우리가 직접 소스 코드를 작성하여 JSON 데이터를 처리하지 않아도 자동으로 처리해주고 있다. 따라서 SpringBoot의 stater-web 에서는 default로 Jackson 관련 라이브러리들을 제공하고 있다. 직접 JSON 데이터를 처리해야할 때는 Jackson 라이브러리의 ObjectMapper를 사용할 수 있다.jackson 라이브러리가 추가되어있는것을 확인Object To JSON테스트를 해볼것이기..

10. 데이터를 Client에 반환하는 방법

Response 트렌드의 변화 서버는 요청을 받아 html/css/js 파일을 반환해주는게 주 업무일까? 당연히 정답은 없지만, 최근의 경향으로는 그렇지는 않다. 예전에는 조금 더 그랬었던 편이지만, 웹 생태계가 고도화 되는 과정중에 상대적으로 프론트엔드와 백엔드가 각각 따로 발전하게 되면서, 느슨하게 결합하는 방식을 더 많이 채택하게 되었고, 최근에는 서버가 직접 뷰(html/css/js)를 반환하기 보다는 요청에 맞는 특정한 정보만 반환하는 것을 더 선호하기도 한다. 그래서 요즘에는 주로 서버에서는 데이터 교환 포맷 중 JSON 형태로 데이터를 반환하기도 하는데, 보통 이렇게 생겼다.따라서 기본적인 html 파일 요청을 제외하고, JSON 데이터를 요청하는 API를 통해 브라우저에서 html을 조작하..