일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 백준
- 객체지향
- 오픈패스
- 티스토리챌린지
- 백엔드개발자
- baekjoon
- OPENPATH
- 오블완
- Spring
- 국비지원취업
- 부트캠프
- KDT
- 백엔드 부트캠프
- UXUIPrimary
- 디자인교육
- Be
- Java
- 내일배움캠프
- 패스트캠퍼스
- 국비지원
- mysql
- 자바
- 오픈챌린지
- 디자인챌린지
- UXUI챌린지
- 디자인강의
- 환급챌린지
- 내일배움카드
- UXUI기초정복
- 국비지원교육
- Today
- Total
목록전체 글 (170)
군만두의 IT 공부 일지
목차11장. 동시성아이템 57. 지 이 글은 『 이펙티브 자바』 책을 학습한 내용을 정리한 것입니다.

목차 책 '주니어 백엔드 개발자가 반드시 알아야 할 실무 지식' 2장을 읽고, 웹 서비스의 성능 최적화를 위해서 캐시와 CDN에 대해 공부했다. 이 글에서는 서버 캐시부터 브라우저 캐시, 그리고 CDN까지를 정리할 것이다.1. 서버 캐시DB 서버를 확장하지 않고 응답 시간과 처리량을 개선하고 싶다면 캐시(cache)를 사용할 수 있다.캐시: (키, 값) 쌍을 저장하는 Map과 같은 형태의 데이터 저장소캐시에 데이터를 저장해두면 동일한 데이터를 요청할 때 DB가 아닌 캐시에서 데이터를 읽어와 응답할 수 있다.일반적으로 캐시에서 데이터를 읽는 속도가 DB보다 빠르기 때문에, 자주 조회되는 데이터를 캐시에 보관하면 응답 시간을 줄일 수 있다.DB뿐만 아니라 복잡한 계산 결과나 외부 API 연동 결과도 캐시에 ..
목차3장. 영속성 관리3.1 엔티티 매니저 팩토리와 엔티티 매니저데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 하나만 생성한다.엔티티 매니저 팩토리는 여러 스레드가 동시에 접근해도 안전하므로 서로 다른 스레드 간 공유해도 되지만, 엔티티 매니저는 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간에 절대 공유하면 안 된다.// 엔티티 매니저 팩토리 생성, 비용이 아주 많이 든다.EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook"); // 엔티티 매니저 생성, 비용이 거의 안 든다.EntityManager em = emf.createEntityManager..
목차2장. JPA 시작2.4 객체 매핑 시작JPA를 사용하려면 회원 클래스와 회원 테이블을 매핑해야 한다. 매핑 정보회원 객체회원 테이블클래스와 테이블MemberMEMBER기본 키idID필드와 컬럼usernameNAME필드와 컬럼ageAGE매핑 어노테이션@Entity: 이 클래스(엔티티 클래스)를 테이블과 매핑한다고 JPA에게 알려준다.@Table: 엔티티 클래스에 매핑할 테이블 정보를 알려준다. 이 어노테이션을 생략하면 클래스(엔티티) 이름을 테이블 이름으로 매핑한다.@Id: 엔티티 클래스의 필드(식별자 필드)를 테이블의 기본키(Primary key)에 매핑한다.@Column: 필드를 컬럼에 매핑한다.매핑 정보가 없는 필드: 매핑 어노테이션을 생략하면 필드명을 사용해서 컬럼명으로 매핑한다. 대소문자를 ..

목차1장. JPA 소개ORM(Object-Relational Mapping) 프레임워크: 객체와 관계형 데이터베이스 간의 차이(패러다임의 불일)를 중간에서 해결해준다.JPA(Java Persistence API): 자바의 ORM 기술 표준이다. 반복적인 CRUD SQL을 알아서 처리해줄 뿐만 아니라 실행 시점에 자동으로 SQL을 만들어서 실행한다.JPA를 사용함으로써 개발자는 SQL을 직접 작성하는 것이 아니라 어떤 SQL이 실행될지 생각만 하면 된다. 애플리케이션을 SQL이 아닌 객체 중심으로 개발하여 생산성과 유지보수, 테스트 작성하기 좋다. 또한, 개발 단계에서 코드를 거의 수정하지 않고 데이터베이스를 쉽게 변경할 수 있다.1.1 SQL을 직접 다룰 때 발생하는 문제점1.1.1 반복, 반복 그리고 ..
목차부록 A A.1 아키텍처 방식A.1.1 모놀리식 방식모놀리식(monolithic) 또는 모놀리스(monolith): 배포하고 실행하는 하나의 구성 요소로만 구성되어 있다는 것. 이 구성 요소에 모든 기능도 구현된다.예) 서점 관리 앱 - 사용자는 서점에서 판매하는 제품, 송장, 배송, 고객을 관리한다. 모든 기능이 동일한 프로세스 일부로 동작한다.비즈니스 흐름(flow): 사용자가 애플리케이션에서 수행하려는 것.예) 서점 주인이 책을 판매할 때 흐름은 다음과 같다. 제품(products) 기능은 재고에서 책을 예약하고, 청구(billing) 기능은 해당 책의 송장을 생성하며, 배송(deliveries)은 언제 책을 배달할지 계획하고 고객(customers) 기능에 알린다.수평 확장(horizontal..

목차1장. 사용자 수에 따른 규모 확장성단일 서버웹/앱 데이터베이스 캐시 등이 전부 서버 한 대 내에서 실행된다.사용자 요청 처리 흐름사용자는 도메인 이름(api.mysite.com)을 이용하여 웹사이트에 접속한다. 이 접속을 위해서는 도메인 이름을 도메인 이름 서비스(Domain Name Service, DNS)에 질의하여 IP 주소로 변환하는 과정이 필요하다. DNS는 제3 사업자(third party)가 제공하는 유료 서비스를 이용하게 되므로, 우리 시스템의 일부는 아니다.DNS 조회 결과로 IP 주소가 반환된다. 예제에서는 그 주소(웹 서버의 주소)가 15.125.23.214로 한다.해당 IP 주소로 HTTP(HyperText Transfer Protocol) 요청이 전달된다.요청을 받은 웹 서버..
목차14장. 스프링 데이터로 데이터 영속성 구현이 장에서 다룰 내용- 스프링 데이터의 작동 방식 이해하기- 스프링 데이터의 리포지터리 정의하기- 스프링 데이터 JDBC를 이용한 스프링 앱의 영속성 계층 구현하기14.1 스프링 데이터란스프링 데이터(Spring Data): 영속성 기술에 맞는 구현을 제공하는 스프링 생태계의 한 프로젝트데이터 영속성을 구현하는 방법드라이버 관리자를 이용하여 관계형 DBMS에 직접 연결하는 JDBC를 사용한다.JdbcTemplate을 사용하거나JDK 인터페이스(Statement, PreparedStatement, ResultSet 등)로 직접 작업할 수 있다.하이버네이트(Hibernate) 같은 ORM 프레임워크를 사용한다.다양한 NoSQL 기술 중 하나를 사용한다.스프링 데..