boot

    [Spring] API - GET

    API란, 클라이언트와 서버(프론트엔드와 백엔드) 서로간의 약속이다. 클라이언트가 정한대로 서버에게 요청(Request)을 보내면, 서버가 요구사항을 처리하여 응답(Response)한다. 여기서 요청되는 자원의 이름을 구분하여 해당 자원의 상태(정보)를 주고 받는 역할을 해야하는데, 그 역할을 하는 친구가 "REST"이다. REST란, 앞서 말했듯 요청되는 자원에 이름을 구분해야 되기 때문에 주소에 명사, 요청방식에 동사를 사용함으로써 의도를 명확히 드러내야한다는 의미이다. ※여기서의 동사는 CRUD를 지칭한다. 예시: GET /courses → 강의 전체 목록 조회 요청 GET /courses/1 → ID가 1번인 녀석 조회 요청 POST /courses → 강의 생성 요청 PUT /courses/3 ..

    [String] Lombok이란

    Lombok이란, Java의 라이브러리로 반복되는 메소드를 Annotation을 사용해서 자동으로 작성해주는 라이브러리다. 보통 DTO나 Model, Entity의 경우 여러 속성이 존재하고 이들이 가지는 프로퍼티에 대해서 Getter나 Setter, 생성자 등을 매번 작성해줘야 하는 경우가 많은데 이러한 부분을 자동으로 만들어주는 라이브러리라고 할 수 있다. 참고: https://www.korecmblog.com/lombok/ Lombok이란? Lombok이란? Lombok이란 Java의 라이브러리로 반복되는 메소드를 Annotation을 사용해서 자동으로 작성해주는 라이브러리다. 보통 DTO나 Model, Entity의 경우 여러 속성이 존재하고 이들이 가지는 프로퍼티 www.korecmblog.co..

    [Spring] JPA심화 (CRUD)_2, SpringBoot 서비스 구조

    [Spring] JPA심화 (CRUD)_2, SpringBoot 서비스 구조

    JPA로 CRUD중 Uplaod를 할려면 Service의 개념을 알아야한다. (Create, Read, Delete는 Repository만으로 구현 가능) . . 스프링의 구조는 총 3가지의 영역으로 나눌 수 있다. Controller, Service, Repository(DAO) 사이사이의 DTO, Domain(Entity)은 정보를 전달해주는 매개체이다 스프링의 구조에 대하여 Controller: 0. 가장 바깥부분, 요청/응답을 처리한다. 1. 클라이언트(사이트)에서 입력되는 정보들을 받아와 해당 정보들이 어떤 용도로 사용되는지 찾아낸다. 2. 찾아낸 정보들을 용도에 맞는 Service로 보내준다. Service: 0. 중간 부분, 실제 중요한 작동이 많이 일어나는 부분이다. 1. Client(사이..

    [Spring] JPA심화 (CRUD)_1

    CRUD란 Create : 생성 Read : 조회 Update: 변경 Delete : 삭제 DB의 데이터를 생성, 조회, 변경, 삭제를 하는 정보관리의 기본 기능을 줄여서 CRUD라고 한다. CREATE & READ Repository의 save(저장하기) -> Repository 사용하는 방법 Repository를 불러왔다면 Repository.java에서 정한 인터페이스명으로 Repository를 사용할 수 있다. (이 글에서 Repository의 인터페이스명은 Course/ Main클래스 명은 Course로 한다.) V public interface CourseRepository extends JpaRepository { } . . . create & read 해보기 [Course.java] pac..

    [Spring] JPA 상속(extends)

    상속(extends)이란 "클래스의 상속"이라는 개념. 이미 단들어둔 클래스를 가져다 쓴다고 선언하는 것이다. @예시 코드 class Person { private String name; private String getName() { return this.name; } } class Tutor extends Person { private String address; // Person 클래스를 상속했기 때문에, // name 멤버변수와 getName() 메소드를 가지고 있다. } Tutor Class에 extends Person을 추가함으로써 Person Class가 Tutor Class에 상속된것을 확인할 수 있다. 상속받는 Tutor Class는 Tutor는 Tutor안에서 선언한 address뿐만 ..

    [Spring] JPA 기초(Domain, Repository)

    [Spring] JPA 기초(Domain, Repository)

    JPA는 JAVA로 Database를 사용하도록 도와주는 친구이다. 따라서 DB를 이용하는데 핵심인 "테이블"과 "SQL"의 같은 개념의 자바 용어가 있다. "테이블"은 JAVA에서 Domain "SQL"은 JAVA에서 Repository 로 쓰인다. Domain과 Repository의 사용법 1. src > main > java > com.filename에 domain이라는 패키지(폴더)를 만든다. 2. ClassName.java, ClassNameRepository.java 클래스를 damain 안에 생성한다. 3.ClassName.java는 테이블 역할은 하는 Domain으로 사용될 녀석이다. @NoArgsConstructor // 기본생성자를 대신 생성해줍니다.(setter) @Entity // ..

    [Spring] JPA란.

    JPA는 JAVA에서 SQL을 쓰지 않고 DB의 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기 역할이다. /*JAVA에서 SQL을 불러와서 DB를 다루는 코드*/ String query = "SELECT * FROM EMPLOYEE WHERE ID = ?"; Employee employee = jdbcTemplate.queryForObject( query, new Object[] { id }, new EmployeeRowMapper()); (jpa가 있다면,) V /*JAVA에서 JPA를 사용하여 DB를 다루는 코드*/ implementaion 'org.springframework.boot:spring-boot-starter-data-jpa' 이처럼 복잡한 sql 명령어를 java에서 사..

    [Spring] IntelliJ SpringBoot 프로젝트 생성하기

    [Spring] IntelliJ SpringBoot 프로젝트 생성하기

    IntelliJ Ultimate에서 SpringBoot 프로젝트 생성 방법. 1.File-> New -> Project... 2. Generators -> Spring Initalizr 3. 세부 옵션 설정 Name: 프로젝트의 이름 Artifact를 설정하면 같이 바뀌니 Artifact로 설정하여 주자. Location: 프로젝트 파일 생성 경로 Language: Spring에 사용될 프로그래밍 언어 Type: 스프링에 사용될 오픈소스 빌드 자동화 툴 선택 ㄴMaven, Gradle중 사용하고자 하는 것을 선택하면 된다. (최근에는 Gradle이 더 많이 사용되고 있음) Group: 서버 주소 ㄴ거꾸로 입력해야한다. ㄴex)com.test ->test.com Artifact:프로젝트의 이름을 설정하는 ..

    [Spring] H2 DB-Engine

    [Spring] H2 DB-Engine

    연습용으로 추천하는 H2 RDBMS H2란 H2 = In-memory DB이다. 인메모리 DB(In-memory DB)란 서버가 작동하는 동안에만 내용을 저장하고, 서버가 작동을 멈추면 데이터가 모두 소멸하는 데이터베이스이다. 사용할 때마다 데이터가 누적되고 무거워지는 타 RDBMS보다 연습, 테스트용으로 적합하다. H2 사용 방법 1. CREATE 새 프로젝트 생성 -> Spring Intializr 파일 생성 -> Dependencies에서 H2 Database 선택 후 생성(CREATE) 2. USE #1 src > main > resources > application.properties #2 아래 코드를 복사/붙여넣기 spring.h2.console.enabled=true spring.datas..

    [Spring] RDBMS란.

    RDBMS란 관계형 데이터베이스에 저장된 데이터의 저장, 관리, 쿼리 및 조회에 사용되는 소프트웨어이다. 성능/관리 면에서 매우 고도화된 엑셀 이라고 생각해도 좋다. RDBMS의 종류 ORACLE (오라클) PostgreSQL (Post-Gres-QL, 포스트-그레스-큐엘) MySQL. SQL Server (MS-SQL) SQLite (에스큐엘-라이트) 각 제품 간 큰 차이가 없어 어떤 걸 사용해도 무관하다. 유료인 Oracle을 제외하고 보통 MySQL, PostgreSQL 중에서 많이 고르는 편이라고 한다. 현재 가장 많이 사용되는 DB-Engines는 여기서 확인이 가능하다. https://db-engines.com/en/ranking DB-Engines Ranking Popularity ranki..