일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- hibernate
- Di
- CI
- 알고리즘
- k8s
- JPA
- docker
- 뷰
- 코딩테스트연습
- Spring
- ORM
- 자바
- IntelliJ
- vuejs
- 해시맵
- builder-pattern
- dabase
- CI/CD
- Kubernetes
- programmers
- java
- 프로그래머스
- map
- Oracle
- CKA
- DevOps
- cd
- Vue
- superBuilder
- SpringMVC
- Today
- Total
목록개발 (72)
문홍의 공부장
Spring AOP 이해하기 예전에 면접에서 "@Transactional의 동작 원리에 대하여 설명해주세요." 라는 질문을 받은 적이 있다. 당시에 제대로 답변하지 못했고, 이를 계기로 Spring AOP 에 대하여 깊게 이해하려 하지 않았다는 점을 깨달았다. 정리해야지 생각만 하고 미뤄뒀었는데 이번 기회에 개념을 다잡아보고자 한다. AOP (Aspect Oriented Programming) ? AOP(Aspect Oriented Programming; 관점 지향 프로그래밍) 는, 횡단 관심사(cross-cutting concerns) 를 분리함으로써 모듈성을 높이는 것을 목표로 하는 프로그래밍 패러다임이다. 이는 코드 자체를 수정하지 않고, 기존에 존재하는 코드에 동작을 추가하여 수행하는 방식이다. ..
@Primary 와 @Qualifier 스프링 애플리케이션에서, 같은 타입의 빈을 두 개 이상 사용할 때 @Primary 혹은 @Qualifier 을 사용한다. 두 어노테이션의 기능과 공통점/차이점을 정리하고, 어떻게 사용하는 것이 효율적인 사용법인지 정리해보자 한다. Primary @Primary 는 같은 타입의 빈을 2개 이상 생성할 때, 하나의 빈에게 더 높은 선호도(higer preference) 를 부여하기 위해 사용한다. Simply put, we use @Primary to give higher preference to a bean when there are multiple beans of the same type. 왜 @Primary 가 필요할까? 스프링 컨테이너가 올라갈 때, 스프링은 컴..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b4AZzn/btr72Yaw6r4/RT9mOGjkkWog9VyMI5qsC1/img.png)
Index의 개념 인덱스란, 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 우리가 사전을 이용해 단어를 찾을 때, index 라는 단어를 찾기 위해 a 부터 찾기 보다는, 알파벳 별로 색인을 두고 i 에서 시작하는 것이 효율적이다. (요즘은 영어사전 세대가 아니라고 하던데.. 허허) 이와 같이 대용량 데이터베이스를 조회 시 인덱스를 생성하여 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있다. 장단점 장점 조회 성능 향상 시스템 부하 개선 단점 인덱스 관리를 위한 DB 내 저장 공간 필요 관리 포인트 증가 잘못 사용될 경우 오히려 성능이 저하될 수 있음 Index 의 자료구조 인덱스를 구현하기 위해 다양한 자료구조를 사용할 수 있다. 대표적으로 해시 테이블과 B-..
REST (Representational State Transfer) What is REST ? "웹의 장점을 최대한 활용할 수 있는 아키텍처" 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것. 구성 Resource 자원: HTTP URI를 통해 자원을 명시하고, Verb 행위: HTTP Method (GET/POST/PUT/DELETE) 를 통해 Representations 표현: 해당 자원(URI)에 대한 CRUD Operation을 적용 "URI는 자원을 표현하는 데에 집중하고, 행위에 대한 정의는 HTTP METHOD를 통해 하는 것이 REST한 API를 설계하는 중심 규칙" GET /members/delete/1 (X) DELETE /members/1 (O)..
도메인 주도 설계 (Domain Driven Developement) 등장배경 기존의 개발 도메인 주도 개발 데이터에 종속 문제 영역을 개념적으로 표현 모델링과 개발 간의 불일치 발생 이해관계자(개발, 기획, 사용자 등) 이 공통적으로 의미를 이해할 수 있음 => 효과적인 모델링 도메인 소프트웨어 프로그램에 대한 기능성을 정의하는 연구의 한 영역 소프트웨어로 해결하고자 하는 문제 영역 ex) 광고회사에서 광고와 관련된 지식 = 도메인 도메인 모델 문제 영역을 개념적으로 표현한 것 도메인 모델을 여러 이해 당사자가 이해할 수 있는 개념적 모델링 가능 하위 도메인으로 개념 구체화 가능 ex) 상품 주문 도메인 => 주문자, 주문상품, 배송 (하위 도메인) 클래스 다이어그램, 상태 다이어그램, 시퀀스 다이어그..
JPA 영속성 컨텍스트 영속성: 프로그램이 종료되어도 사라지지 않는 데이터의 특성. 영속성 컨텍스트: 엔티티를 영구 저장하는 환경. 개념 애플리케이션과 데이터베이스 사이에서, 객체를 보관하는 논리적 개념 (가상의 DB 역할) 영속성 컨텍스트는 직접 접근이 불가하며, 엔티티 매니저EntityManager 를 통해서 접근 가능하다. EntityManager를 통해 엔티티를 저장/조회 시, 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. (em.persist()) 트랜잭션을 커밋하는 시점에 영속성 컨텍스트의 내용이 테이블에 반영된다. (em.flush()) 엔티티의 생명주기 비영속(new/transient) 엔티티를 생성했지만 아직 영속성 컨텍스트에 저장하지 않은 상태 영속(managed) 엔티..
JPA 개념 정리 what is JPA(Java Persistence API) ? 자바 ORM 기술에 대한 API 표준 명세. (ORM을 사용하기 위한 인터페이스의 모음) JPA는 API의 규격일 뿐. (라이브러리나 프레임워크가 아님) Hibernate, OpenJPA 등이 JPA를 구현한 구현체(ORM 프레임워크)이다. what is ORM (Object-Relational Mapping) ? 객체가 DB 테이블이 되도록 매핑시켜주는 프레임워크. 객체 간의 관계를 바탕으로 SQL 을 자동으로 생성 프로그램의 복잡도를 줄이고, 자바 객체와 쿼리를 분리할 수 있으며, 트랜잭션 처리나 기타 데이터베이스 관련 작업들을 편리하게 처리할 수 있는 방법. SQL Mapper ORM 자바 클래스와 sql을 매핑 자바..
환경 설정 파일(Config)을 사용하여 시크릿 관리 https://kubernetes.io/ko/docs/tasks/configmap-secret/managing-secret-using-config-file/ what is secret-config ? kubectl 을 사용하여 바로 secret 을 생성할 수 도 있지만, config 파일을 사용하여 보다 편리하게 secret 을 생성, 관리할 수 있다. 시크릿 리소스에는 data 와 stringData 의 두 가지 맵이 포함되어 있다. data 및 stringData은 영숫자, -, _ 그리고 .로 구성되어야 한다. data: base64로 인코딩된 임의의 데이터 기입 stringData: 편의를 위해 제공되는 필드. 시크릿 데이터를 인코딩되지 않은 ..