[TodayKeywords] 오늘 공부한 키워드
Interface
: 양간의 경계면/접점Controllor
: HTTP의 접점에 있는 계층. 요청 처리 및 렌더링을 담당.Service(Domain)
: 유효성 검사 및 계산을 담당.Repository
: DAO 계층DAO(Data Access Object)
: DB에 접근가능 한 객체DTO(Data Transfer Object)
: 계층 간 데이터를 교환하기 위한 객체, 순수하게 get, set만 한다.Spring
: 계층 간 분리를 통해 조금더 개발자가 Service(Domain) 단의 개발에 집중 할 수 있도록 함.DBMS(DataBase Management System)
: DB를 관리하고 운영하는 소프트웨어DDL(Data Definition Language)
: 데이터를 정의하는 언어. CREATE, ALTER, DROP, TRUNCATEDCL(Data Contorl Language)
: 접근권한을 정의하는 언어. REVOKE, GRANTDML(Data Manipulation Language)
: 데이터의 CRUD에 대한 것. CREATE, SELECT, UPDATE, DELETEJDBC(Java DataBase Connectivity)
: Java로 데이터베이스 연결을 가능하도록 만들어주는 APIJPA(Java Persistence API)
: Java ORM 기술에 대한 표준명세영속성 컨텍스트
: JPA를 사용하게 되면, 어플리케이션과 DB사이에 영속성을 관리하기 위한 엔티티임시저장소가 생긴다. 이를 영속성 컨텐스트라고 한다.엔티티의 생명주기
: 비영속상태/ 영속상태/ 준영속상태/ 삭제상태@PathVariable
: { } 내에 전달되는 매개변수를 전달받기 위한 어노테이션. 생략불가@RequestParam
: request params 형식으로 주소를 통해 전달되는 인자를 받아오기 위한 어노테이션으로. 생략가능하다.@ModelAttribute
: request body 를 통해 전달된 값을 곧바로 클래스로 받아서 사용가능하도록 만드는 어노테이션. 생략가능하며, 전달받는 클래스에는 세터가 있어야한다.@RequestBody
: request body 를 통해 전달되는 json 값이 mapping된다. 생략불가하며, 전달받는 클래스에는 세터가 있어야한다.JPA Auditing
: @EnableJpaAuditing 어노테이션으로 구현가능하며,감시하다
의 의미를 지닌다. Entity의 생성수정시 그 시간을 자동으로 기록하고 저장해준다.JPA 방언(Dialect)
: JPA가 어떤 DBMS의 SQL를 사용하고 있는지 인식하도록 셋팅하는 것이다. 셋팅되면, 그에 맞는 Dialect 추상클래스를 가져와 사용한다.
[NextKeyworks] Study Queue
- HTTPS
- SOLID
- loop label
- CSV
- 파일입출력
- UML
- UTC
- epoch time / Instant time
- MVC
- URL ClassLoader
- Secure ClassLoader
- JNI
- GC
- HOF
- 자바 해시코드
- OSI 7 계층
- PCB
- DI
- IOC
- 스프링 설계철학
- RESTful
[회고] 221205 : 선택과 집중을 잘해야하는 시기
새로운 프레임워크를 학습하기 시작했다. 스프링은 생각보다 잘 갖춰진 프레임워크 같았다. 마치 장고처럼!
과거의 경험을 토대로 생각해보면, 이런 프레임워크는 정해진 틀을 벗어나려고 하다보면 그 때부터 러닝커브가 시작된다. 또한, 스프링을 자주쓰다보면 자바를 잊어버리는 이상한 상황이 발생하는데, 그 점을 항상 경계해야겠다.
스프링하면서 신경써야할 것들은 다음과 같다.
- 자바를 잃지 않기 : 어차피 JVM에서 돌아가는것이고, 근본은 자바이다. 따라서, 자바언어를 잊어버리면 근본적인 문제를 해결 할 수 없다.
- 스프링, JPA, JDBC, Lombok 간의 관계를 정확히 파악하기 : 스프링은 프레임워크인데 그 안에 JPA, JDBC, Lombok를 이용한 것인지, 스프링 그자체로 할 수 있는 것은 어디까지인지 정확히 파악해야한다.
- 특정 에디터에 종속되는 것을 경계하기 : 인텔리제이는 좋은 에디터이고, 자동완성이 정말 잘되있다. 또한 톰캣도 알아서 띄워준다. 하지만, 언제나 유료버전을 사용 할 순 없다. 인테리제이없이도 스프링을 돌릴 수 있도록 하자. (아마 build.gradle을 작성하는 능력일 듯)
- 왜 이렇게 사용하는지 의심하기 : 그냥 아무런 생각없이 사용만 하면, 툴키디가 된다. 왜 굳이 이런선택을 해야했는지 의심하고 리서치해보며 개발하자.
나는 취업준비/면접준비를 병행하며 학습을 하는 만큼 그에 맞게 학습을 해야한다. 따라서, 위를 꼭 기억하며 스프링을 학습하려고 한다.