TIL - 항해99 15일차

스브코·2021년 11월 15일
0
post-custom-banner

스프링 시작의 첫날! 생각보다 그렇게 어렵진 않았지만 심화과정으로 갈수록 어려워질것으로 예상되서 걱정이 되긴한다. 자바 공부와 꾸준히 병행해서 프로젝트때 준비가 더 많이 되있도록 노력해야겠다. 3주차조의 팀원들은 굉장히 열심히 하시는 분들이라 자극이 많이 된다... 블로그 정리는 정말 귀찮은데 다른분들은 다 너무 정리를 잘하셔서 조금 더 신경써야겠다 ㅠㅠ

오늘 강의를 들으며 새로 알게된 부분 정리

RestController: JSON을 응답해주는 자동응답 기능

Rest: 데이터를 돌려줄때 JSON을 돌려준다. HTML, CSS등을 주고받을 때는 Rest를 붙이지 않는다.

Controller: 자동응답기능, 클라이언트의 요청을 전달 받는 코드

Rest란, 주소에 명사, 요쳥 방식에 동사(CRUD)를 사용함으로써 의도를 명확히 드러냄을 의미한다

API 주소 생성시 주의 사항

API 주소를 만들때는 복수형만 사용한다, 주소에 주로 동사는 사용하지 않는다

다른사람들이 만들어둔 도구 내려받기

NPM - javascript

pip - python

mavenCentral, jcenter - java

Gradle - 배포할때, 라이브러리 가져올때 사용

@MappedSuperclass - 상속했을때 컬럼으로 인식

인터페이스 - 클래스에서 멤버가 빠진, 메소드 모음집이다

숙제하다가 까먹어서 헷갈린 부분 정리

  1. H2 console - in-memory DB로 서버가 작동하는 동안에만 내용을 저장하고, 서버가 작동을 멈추면 데이터가 모두 삭제되는 데이터 베이스

    application/json에 아래 코드 스니펫 넣어주고,

    spring.h2.console.enabled=true
    spring.datasource.url=jdbc:h2:mem:testdb

    localhost:8080/h2-console 에서 connect해주기

  1. PersonService에서 update 메소드에 @Transactional annotation 까먹어서 PUT 통신시 DB에 적용이 안됨

JPA(Java Persistence API) 란?[출처]

자바명령어를 SQL로 번역해주는 역할, SQL을 쓰지않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록 도와주는 번역기

Spring이 아니라 Java에서 제공, 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스, 즉 ORM을 사용하기 위한 인터페이스이다.

ORM - 자바클래스와 DB테이블을 매핑한다. 객체간의 관계를 바탕으로 SQL을 자동으로 생성한다. SQL 쿼리가 아니라 메서드로 데이터를 조작할 수 있다. 객체간 관계를 바탕으로 sql을 자동으로 생성한다. 종류는 JPA, Hibernate가 있다.

ORM과 다른 방식으로 디비를 조작하는 개념으로는 SQL Mapper라는 것이 있다. SQL문으로 직접 디비를 조작하는 방식으로 Mybatis, jdbcTemplate이 있다.

둘의 차이점은 ORM이 RDB의 관계를 object에 반영하는 것이 목적이라면, Mapper는 단순히 필드를 매핑시키는 목적으로 자향점의 차이가 있다.

기본적으로 JDBC(Java Database Controller)는 자바에서 제공하는 DB 접근 API의 근간으로 개발자가 JPA를 사용하면, JPA 내부에서 JDBC API를 사용하여 SQL을 호출하여 DB와 통신한다.

RestAPI 란?

REST API(RESTful API, 레스트풀 API)란 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻합니다. REST는 Representational State Transfer의 줄임말입니다.

REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.

HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다. 즉, REST는 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미한다.

출처: 장단점 및 Rest의 자세한 특징 참고

profile
익히는 속도가 까먹는 속도를 추월하는 그날까지...
post-custom-banner

0개의 댓글