전체 글
-
CloudFront 주요 기능 정리AWS 2022. 7. 15. 00:49
CloudFront 정의 AWS에서 제공하는 CDN 서비스이다. 컨텐츠를 최적화 하여 보다 빠르게 유저에게 제공할 수 있다. CloudFront 주요 기능 1) HTTPS 통신 지원 HTTP 통신도 유저와 통신할때 HTTPS 변경 서비스 지원 2) 정적/동적 컨텐츠 모두 최적화 정적 컨텐츠 이미지, CSS 등 서버가 필요없는 클라이언트 데이터 캐싱 캐싱으로 접근 속도 최적화 동적 컨텐츠 (다른 CDN과 다르게 동적 컨텐츠 최적화를 돕는다) 로그인, 게시판 등 서버 계산, DB 조회가 필요한 내용등을 최적화 네트워크 최적화, 연결 유지, Gzip 압축등을 사용하여 최적화 함 DNS Lookup, TCP Connection, Time to First Byte 등을 최적화 즉, CloudFront는 통신를 최..
-
Optional<> 과 Null (이론편)JAVA/자바공부 2022. 7. 15. 00:39
Optional이란 무엇인가 NullPointer 예외 피할 수 있게 도와주는 클래스. 값을 갖거나 갖지 않을 수 있는 컨테이너. 프로젝트 중에 동료 개발자분 JAVA 코드를 보니 Optional 활용이 많더라. 애초에 JPA 사용할때는 .orElseThrow(() → {new Exception}) 형태로 사용했는데,, 정신차리고 보니 전부 if 문으로 null 처리를 하고 있었다… if (ㅇㅇ == null) {} .. 요런식 나도 쓸꺼야… 옵셔널..... Optional.ofNullable(validatioon).orElseGet(() -> new HashMap()); Optional.ofNullable(appDTO.getMultipartFile()).ifPresent(app::setMultipart..
-
[SQL] Or 와 In 조건 뭐가 더 좋을까? SELECT OR vs IN, which is better performance.Spring Boot/DB 2022. 7. 15. 00:29
의제 SQL에서 아래 2개의 차이는 무엇이고 Performance는 어떤 것이 좋을까. WHERE foo IN ('a', 'b', 'c') WHERE foo = 'a' OR foo = 'b' OR foo = 'c' 새로 입사한 신입 개발자 분의 질문으로 짧은 토론(?)이 있었다. 10년차 시니어님 : 아.. 이거 real my sql에서 본건데... 책 어디갔어요..! (내가 집에 모셔두었다...) 5년차 개발자 친구 : in() 이 더 빠르지 않니? 검색해이쉬. 3년차 개발자 동료 : or 가 더 빠르지 않을까요? in 은 전부 스캔하는 느낌이고, or는 하나라도 맞으면 결과 낼꺼 같은데. 즉.. 명확하게 어떤 것이 좋다 나오지 않아서 검색해 보았다. 결론 12년 전에는… from stackOverfl..
-
Flyway로 데이터베이스 마이그레이션 해보자 (이론편)Spring Boot/DB 2022. 7. 14. 19:43
Flyway란 무엇인가? Open Source Database Migration Tool - DB 형상 관리 (소프트웨어 변경사항 체계적으로 추적 통제하는 것) Git 처럼 데이터베이스의 History를 관리 해주는 도구이다. 데이터베이스에 직접 DDL을 입력하는게 아니라 SQL File로 데이터베이스를 변경/생성/삭제하며 관리할 수 있다. 즉, DB에 직접 접근하는게 아니라 코드에서 관리할 수 있음. 더나아가 누가, 언제, 어떤 테이블에 어떤 작업을 했는지 기록이 남는다. (퇴사자가 무엇을 했는지 확인 가능) 상상해보자.. 개발하다가 테이블 변경할 일이 생겼다. 그리고 DBA가 없는 회사다. 데이터베이스에 들어가서 ALTER TABLE..... 어쩌고 작성하는데 몇만건의 데이터가 있는 DB라면..? 너..
-
[Mybatis 시리즈 2] DataSouce와 DBCP (DataBase Connection Pool)Spring Boot/DB 2022. 4. 14. 23:03
Mybatis는 O/R Mapper다. 즉 Object와 Relational(관계형 데이터베이스)의 교두보 역할이다. 근데 다 떠나서, Web App이랑 DB랑 연결이 되어 있어야 쓰던가 말던 한다. 연결할때 사용하는 주요 키워드를 정리한다. JDBC - WAS에서 DB에 접근하려면? Application과 DB를 연결하는 것은 JDBC이다. JDBC Driver : 디비 벤더(오라클, mysql)에서 제공하는 DB와 연결하게 해주는 컴포넌트 DB 연결 과정 JDBC 드라이버 로드 **.jdbc.Driver Connection(Thread 생성) → DB 작업 처리 → Close : 이 과정에서 DB Connection 객체 생성 비용, 시간, 네트워크 연결 비용 등등 지속적인 부하 String driv..
-
[Mybatis 시리즈 1] 동작 원리와 스프링에서 어떻게 사용될까?Spring Boot/DB 2022. 4. 14. 22:06
본 시리즈는 빠르게 Mybatis를 사용해보는 목적으로 작성했습니다. 개요 MyBatis는 자바 오브젝트와 SQL문 사이의 자동 Mapping 기능을 지원하는 오픈소스 ORM 프레임워크 (Object Relational Mapping) 장점 Hibernate나 JPA 처럼 새로운 DB 패러다임을 익혀야하는 부담이 적다. JDBC 코드 작성의 불편함 제거 도메인 객체나 VO 객체 중심으로 개발이 가능하다. XML에 SQL 문을 분리하여 관리 → 개발자가 아닌 사람도 작성할 수 있다. Mybatis-spring, Mybatis3의 아키텍처 (스프링) JDBC : 디비 연결 → DataSource JDBC Driver : DB 벤더에서 제공하는 드라이버 Mybatis → JDBC는 저수준의 API, Mybat..