전체 글 51

[2주차] 개발일지 (2-9) API: GET / POST / PUT / DELETE (前)

저번 시간에 다뤘던 GET / POST / PUT / DELETE 기능 기억하는가? 워낙 중요한 내용이다보니 다시 한 번 리마인딩 해보겠다. GET (읽기: READ) POST (생성: CREATE) PUT (수정: UPDATE) DELETE (삭제: DELETE) 이렇게 CRUD와 연계해서 머리 속에 박아넣는 것이 중요한 것 같다. 그렇다면 이제부터 본격적으로 저 4가지 기능을 코드를 통해 살펴보도록 하자! 1. GET package com.sparta.week02.domain; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; @Getter @NoArgsConstructor // 기본생성자를 대신 생성해..

[2주차] 개발일지 (2-8) API

1. API (Application Programming Interface) 앞 부분에서 미처 다루지 못하고 넘어간 것 같은데 API를 이해하기 위해서는 클라이언트와 서버의 개념부터 잡아야 한다. 클라이언트란 무엇인가? 맥도날드 매장을 예로 들어보자. 사용자 내지 고객은 카운터에서 직접 주문을 요청 (Request) 할수도 있고 키오스크에서 본인이 원하는 옵션을 선택하여 주문할 수도 있다. 이때 유저에게 직접적으로 노출되는 화면단을 클라이언트 (Client) 라고 보면 된다. 그렇다면 서버는 뭐징??? 마찬가지로 맥도날드를 예로 들어보자 ㅋㅋㅋㅋ 고객이 빅맥세트를 주문하건, 상하이 스파이스 치킨버거 세트를 주문하건.. 그 주문 요청에 응답 (Response)를 해주는 쪽이 따로 있을 것이다. 예컨대 고객..

[2주차] 개발일지 (2-7) LOMBOK / DTO

1. LOMBOK 이 편한 기능을 나는 왜 여태 모르고 있었을까.. 새삼 프레임워크의 소중함이 느껴지는 기능이었다. IntelliJ 상에서는 프로젝트를 처음 생성할 때 추가하는 라이브러리이므로 별도의 설치는 요구되지 않는다. 그래서 그게 뭔데? 코드를 보자 package com.sparta.week02.domain; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.Setter; @Getter @Setter @RequiredArgsConstructor public class CourseRequestDto { private final String title; private final String tutor; } 경이롭지 않..

[2주차] 개발일지 (2-6) JPA 심화과정

1. C.R.U.D 데이터베이스! 하면 빠질 수 없는 기능이다. Create (생성) Read (조회) Upadate (변경) Delete (삭제) Boot Spring의 JPA 기능을 통해 다음 기능들을 구현해보자. 코드를 참조할 것! Course.java package com.sparta.week02.domain; import lombok.NoArgsConstructor; import javax.persistence.*; @NoArgsConstructor // 기본생성자를 대신 생성해줍니다. @Entity // 테이블임을 나타냅니다. public class Course extends Timestamped{ // Course 클래스는 Timestamped 클래스를 상속해서 쓴다. // Timestamp..

[2주차] 개발일지 (2-5) 생성일자, 수정일자

1. 상속 (Inheritance) 뜬금없이 왠 상속개념이냐고? 단순히 JPA 뿐만 아니라 상속은 JAVA에서 코드의 재사용율을 높이기 위한 가장 핵심적인 기능이다. 거두절미하고 코드 먼저 살펴보자. class Person { private String name; private String getName() { return this.name; } } class Tutor extends Person { private String address; // Person 클래스를 상속했기 때문에, // name 멤버변수와 getName() 메소드를 가지고 있습니다. } Tutor 클래스는 Person 클래스를 상속한다. 즉, Person 클래스는 Tutor 클래스의 부모가 되는 셈이다. 자식 클래스가 되는 Tuto..

[2주차] 개발일지 (2-4) JPA Application

1. Applicable JPA JPA라는 기능을 통해 SQL의 SELECT 및 INSERT 기능을 대신 수행할 수 있다고 했다. 이번 시간에는 그것을 어떻게 유용하게 써먹을 수 있는지 알아보자. 우선 지금 교보재로 쓰고 있는 IntelliJ 기준으로 설명하겠다. 어짜피 이거 유효기간 만료되면 다시 이클립스로 돌아가야 할테니 이클립스에서 JPA를 쓰는 방법은 따로 공부해서 올리도록 하겠다. 자, 간단한 세팅부터 해보자. 프로젝트를 생성하였다면 resources 폴더 아래에 'application.properties' 라는 실행파일이 보일 것이다. 클릭! server.port=8090 spring.jpa.open-in-view=false spring.h2.console.enabled=true spring...

[2주차] 개발일지 (2-3) JPA

1. JPA (Java Persistence API) 어렵게 생각할 거 없다. 이제 막 웹 개발을 시작한 우리는 백엔드 서버 영역에서만 하더라도 할 일이 너무 많다. 어느 세월에 SQL문을 일일이 옮겨 적는단 말인가? JPA는 그러한 고민을 원-큐에 해결해주는 아주 유용한 기능이다. 즉, IDE 환경에 SQL문을 직접 쓰지 않더라도 CREATE, SELECT, INSERT, DELETE 등의 기능을 대신 수행해주는 컴파일러 속에 또 다른 컴파일러가 바로 JPA인 셈이다. IntelliJ 환경에서 새 프로젝트를 만들 때 JPA 기능을 추가하였다면 별도의 설정은 요구되지 않는다. 2. Interface 이것은 일반적인 클래스가 아니라 '추상 클래스'라고 한다. 여기서 선언되는 메서드는 '추상 메서드'라고 하..

[2주차] 개발일지 (2-2) SQL

1. SQL (Structured Query Language) 사전적으로 풀이해보자면 '구조화 된 질/의 언어' 라고 할 수 있다. 사용자가 SELECT, CREATE, DROP, INSERT, DELETE, JOIN 등의 명령을 DB 서버에 요청 (Request)하면 서버에서는 그에 알맞는 응답 (Response)를 내놓는 식이다. 예컨대 테이블 (Table)을 생성 (Create)하고 다시 삭제하는 행위 (Drop) 그리고 생성된 테이블 안에 데이터를 삽입 (Insert) 및 조회 (Select) 하는 등의 기능들이 RDBMS의 핵심 기능이다. 한 마디로 매우 파워풀한 엑셀시트.. 테이블을 생성하는 예제코드는 다음과 같이 작성할 수 있다. CREATE TABLE IF NOT EXISTS INFOS (..

[2주차] 개발일지 (2-1) RDBMS

Relational Database Management System (RDBMS) 흔히 관계형 데이터베이스 시스템이라고 한다. C.R.U.D - Create - Read - Update - Delete 이 네 가지 기능을 일컫는 말인데 한 마디로 성능이나 관리 면에서 극도로 고도화된 엑셀이라고 봐도 무리가 없다. 당연히 RDBMS의 종류도 다양할 수밖에 없는데 현업에서는 대체로 MySQL을 애용하는 듯 하다. 비싸기는 하지만 OracleDB 역시 금융권에서 떼어놓을 수가 없는 SQL이다. 이번에 교보재로 사용할 H2는 서버가 정지되면 내부 데이터도 그 즉시 소거되는 기능을 가지고 있기 때문에 실습용으로 딱이다. 이상!

[1주차] 개발일지 (1-2)

Spring을 유용하게 사용하기 위한 JAVA의 기본 문법에 대하여 다루어 볼 것이다! 1. 변수 (Variable) 1) 값을 저장하는 메모리 공간이라고 할 수 있다. 2) 변수를 선언할 때는 "(자료의 종류) (변수명) = (값)" 의 순서를 따른다. ex) String text01 = "Hello, Java!"; 3) 변수명은 일반적으로 영어로 작성하고, 소문자로 시작해 대문자로 구분하는 '카멜 (Camel)' 기법을 준수하는 것이 약속 4) 다른 언어는 모르겠지만 불친절한 자바는 코드를 작성 한 후에 무.조.건 세미클론(;)으로 마무리 지어줘야 한다. 2. Data Type in JAVA 1) 숫자형: Int, Float, Long 이 세 가지가 가장 많이 쓰인다. Int < Float < Lon..