[정리] 기능별 개념 정리(105)
-
Persist vs Merge
Persist : create Merge : update JPA 에서 Save 는 경우에 따라 persist 또는 merge 를 호출하기도한다. Detached 객체를 save 할 경우 Save 시 merge (= update)를 하게된다. merge 의 결과로 update 쿼리가 발생한다. MyClass myClassB = myRepository.save(myClassA); myClassA 와 myClassB는 다른 객체이다. myClassA = myRepository.save(myClassA); 습관적으로 JPA save 한 객체는 반환된 객체를 사용하는 것이 좋다. Detached 객체 = 즉 한번이라도 영속화가 됬었을 법한 객체를 save 할 경우 = Id 가 있는 객체를 save 할 경우 htt..
2020.02.04 -
영속성 컨텍스트 정리 (2)
1. Query 어노테이션을 사용하여 만든 쿼리는 반드시 SQL 문을 날린다 (같은 파라미터 일지라도) 코드 @Repository public interface TeamRepository extends JpaRepository { Optional findById(long teamId); } TeamEntity teamEntity = teamRepository.findById(teamId).get(); teamEntity = teamRepository.findById(teamId).get(); teamEntity = teamRepository.findById(teamId).get(); teamEntity = teamRepository.findById(teamId).get(); teamEntity = tea..
2019.11.14 -
Spring security아키텍처 관점의 인증 과정 2019.10.11
-
스프링 부트 Request 데이터 validation
출처 : https://www.youtube.com/watch?v=Ul-1lfjRCiE Request 시 데이터를 받는 방법 @Validated 지원 @Valid 지원 @RequestParam O X @RequestHeader O X @CookieValue O X @RequestVariable O X @ModelAttribute O O @RequestBody O O @RequestPart O O Validated 로 Request 데이터 검증하기 @Validated 로 검증 애노테이션인 @NotEmpty 와 @Min 을 사용하겠다는 선언을 해줘야한다. @RestController @Validated public class MyController { @GetMapping("/user") public Use..
2019.09.09 -
Docker-compose fixed network IP
문제 상황 docker-compose 를 사용하여 컨테이너들을 여러개 띄울 경우 자체적인 네트워크를 하나 생성한다. 이 네트워크는 172.AAA.BBB.CCC/16 으로 할당이 된다. 이때 AAA는 1~254 사이에 랜덤하게 생성되기 때문에 만약 이미 사용중인 다른 네트워크 IP 가 있을 경우 라우팅 문제가 생길 수 있다. [Sample] myDocker/docker-compose.yml version: "3" services: zookeeper: image: wurstmeister/zookeeper container_name: myZookeeper ports: - "2181:2181" networks: - myNetwork kafka: image: wurstmeister/kafka:2.11-1.1.1 ..
2019.08.28 -
React 강의 정리 (6)
NodeJS 브라우저가 아닌 환경에서도 자바스크립트를 사용할 수 있도록 하는 자바스크립트 런타임. NodeJS 는 웹서버가 아니다. NodeJS 만으로는 아무것도 하지 않는다. HttpServer 를 직접 작성해야한다. Express NodeJS 기반의 HttpServer Routing, Session, Template 등 기능을 제공 Express 예시 main.js var express = require('express'); var user = require('./routes/user'); var app = express(); app.get('/', function(req, res) { res.send('Hello World'); }); app.use('user', user); app.listen(3..
2019.08.23