-
SQL JOIN 두 개의 테이블에 대한 쿼리 실행을 할 떄 사용됨 - PK, FK를 활용해서 JOIN 여러 타입의 JOIN이 있음 Inner Join : ON으로 지정한 결합 조건에 일치하는 두 테이블의 행만을 가져오는 것 - 어디 테이블도 다 가지고 오는게 아니라 딱 공통되는 행만 Outer Join : 방향에 따라서(테이블을 쿼리문에서 어디에 놓느냐 - LEFT / RIGHT) 기준이 되는 테이블의 행은 모두 가져오고, 이외 테이블의 행은 ON 결합 조건에 해당하는 행만 가져옴, 나머지 데이터는 NULL로 처리됨(기준 행의...
-
spring-security 인증 구현하기 반복 Form Login - generate JWT flow 로그인 페이지로 감 로그인 정보를 입력한 후 submit 버튼을 누름 - http://domain.com/login과 같은 정해진 URL 요청을 함 서블릿 필터에서 걸림 - FormLoginFilter, 필터의 대상으로 지정된 요청이라면 DespatcherServlet으로 가지않고 프로바이더로 가게끔 필터에서 입력한 정보를 가지고 인증 전 객체를 만듦 - PreAuthenticationToken 적당한 프로바이더를 찾아서 처리를 함 - AccountService와 협업 프로바이더에서 인증이 성공하면 인증 후 객체를 만듦 - PostAuthentication 필터로 다시 돌아와 성공, 실패 핸들러 메소드를 거치게...
-
어플리케이션 성능 개선 banwidth와 latency : latency 이슈가 더 많음(얼마나 빠르게 응답을 주느냐) - 서버와의 거리, 우리 개발력(서버 처리 시간…, 동적인 컨텐츠에 대한 처리) CDN : 지역마다 컨텐츠만 전달하는 용도로 두는 서버, latency를 낮추기위해서 물리적인 거리를 줄임(리전 별로 - 전세계 주요 거점에 서버를 둠) - 정적인 콘텐츠 성능 이슈 css, js, img 자원에 대한 응답이 가장 많이 생김, 특히 이미지 개선 방법 캐시 한번 다운로드 받은 파일을 다시 다운로드 받지 않는 것 : 무작정 하면...
-
spring [스프링빈 컨테이너와 DI] 컨테이너에서 관리하고 있어야 컨테이너에 있는 다른 디펜던시를 인젝션 받을 수 있음 : 그 대상을 골라낸다음 해당 클래스를 읽기때문에(streotype 어노테이션이 설정되어있어야함) [spring-mvc] 실행시킬 때 import.sql을 사용하지않고, Repository에 엔티티 등록하기 : CommandLineRunner - 부트 실행 시 커맨드 실행 args로 Autowired처럼 가져올 수 있음 @SpringBootApplication public class SecurityApplication { public static void main(String[] args) { SpringApplication.run(SecurityApplication.class, args); } @Bean CommandLineRunner test(AccountRepository accountRepository, PasswordEncoder encoder) { return args -> { Account account = new Account("colin",...
-
sql 테이블 생성, 수정하기 TINYINT와 INT 타입 : 가격 데이터를 저장해야하는데, TINYINT는 -127 ~ 128까지 저장가능함 -> 데이터 타입을 변경해야함, INT(21억) 늘릴 수 있지만 줄일 수 없음 > CREATE TABLE ITEM ( ITEM_ID INT AUTO_INCREMENT, NAME VARCHAR(50) NOT NULL, PRICE TINYINT DEFAULT 0, QUANTITY INT DEFAULT 0 PRIMARY KEY (ITEM_ID); ); > ALTER TABLE ITEM MODIFY COLUMNN PRICE INT DEFAULT 0; SELECT - ORDER BY 정렬하기 : ORDER BY 열 DESC ASC 복수열 정렬 가능...