설정값은 어떻게 처리되나? application.properties 혹은 application.yml 의 값들은 어떻게 처리되는 것일까? 해당 내용을 자세히 확인해보고 싶으면 HikariConfig 을 참조 해주세요. 자주 쓰이는 값들 ✔autoCommit // Properties NOT changeable at runtime // private boolean isAutoCommit; public HikariConfig() { dataSourceProperties = new Properties(); healthCheckProperties = new Properties(); isAutoCommit = true; String systemProp = System.getProperty("hikaricp.conf..
AOP는 뭘까? 객체지향적인 코드를 다른 방식으로 구성한 방식. Call Exit 부분이 공통적으로 되어 있는 코드들이 있을 때 사용할 수 있는 기법 대표적으로 사용하고 있는 @Transactional 로그 찍을 때 그 외 AOP는 어떤 것을 지원할까? Before 특정 메소드가 실행되기 전에 대한 행동을 정의 After returning 특정 메소드가 정상적으로 실행되고 나서 일어날 행위를 정의 After throwing 특정 메소드가 실행되면서 에러가 났을 때 일어날 행위를 정의 After 특정 메소드가 실행되면서 정상적으로 끝나든 에러가 나듣 상관없이 일어날 행위를 정의 Around 특정 메소드 전 후의 행위를 정의 그렇다면 Spring AOP를 어떻게 정의해야 할까? Spring AOP의 목표는 ..
Spring Transactional 스프링 Transaction 처리는 PlatformTransactionManager를 구현한 클래스를 통해 처리한다. 이를 구현한 클래스는 DataSourcePlatformTransactionManager, HibernatePlatformTransactionManager, JpaPlatformTransactionManager 등 다양하게 존재한다. (여기에서도 느껴지는 스프링의 철학. 역할과 구현을 분리. PlatformTransactionManager라는 역할을 만들고 이를 구현한 클래스를 각 상황에 맞게 사용) 예외처리 Transactional 어노테이션을 감싼 메소드에서 RuntimeException의 경우에는 롤백이 일어나고, checkedException(가..
필자는 해당 기능을 구현하는 것 중에서 유저의 필드 중 특정 부분만 업데이트를 해주는 서비스가 있었습니다. 그래서 테스트케이스에서 응답에 대하여 해당 필드 값을 반환을 안해줘서 이에 대한 체크를 못했던 것이 컸던 것 같다. 변경 전 코드 @Transactional public Message clickAlarmToggle(Account account, Boolean on) { account.setIsAlarm(on); return Message.of(StatusEnum.ACCOUNT_OK,AccountContent.CHANGE_ALARM_TOGGLE); } public static Account getAccount() { PrincipalDetails principal = (PrincipalDetails)..
JPA N+1 연관 관계에서 발생하는 이슈로 연관 관계가 설정된 엔티티를 조회할 경우 첫 번째 조회 + 해당 갯수(N) 만큼 조회되는 현상을 말한다. 테이블은 다음과 같이 구성되어 있습니다. @Test void test_query_check() { Account account = AccountTemplate.makeTestAccountForIntegration(); List organizations = new ArrayList(); for (int i = 0; i < 10; i++) { organizations.add(OrganizationTemplate.makeTestOrganizationForIntegration("테스트"+i)); } Account newAccount = accountReposito..
1. Slack 자체설정 1. 앱 만들기 2. Bots 선택 3. 좌측 OAuth & Permissions 클릭 4. Token 복사 5. 토큰 범위 쓰기 까지 설정 6. 알림을 보내고자 하는 채널 우클릭 우클릭을 하면 링크 복사가 있는데 거기에서 https:/testtest.slack.com/test/C234KDSF932DF C234KDSF932DF이 부분이 채널이다. 2. 스프링 부트 1. application.yml slack: token: xoxb-???????????????????????????????????????????? channel: monitor: ??????????? 와 같이 저장을 하자. 각 자신의 토큰과 채널을 넣어주면 된다. 2. AlertService.java @Service ..
Jpa를 이용하면서 데이터 디폴트 값을 어떻게 줘야 할까 고민 한 적이 있었다. 첫 번째로 시도한 방법은 다음과 같다. public class Saying{ ... @Column(columnDefinition = "VARCHAR(255) default '작자미상'") private String author; } @Column에 디폴트 값을 설정하여 시도 한 적이 있었다. 그리고 resources 디렉토리 아래에 "import.sql"에 다음과 같이 작성했다. INSERT INTO SAYING (content) VALUES ('새로운 일을 시작하는 용기속에 당신의 천재성, 능력과 기적이 모두 숨어 있다.'); 그랬을 때 DB 상에서는 IDAUTHORCONTENT 1"작자미상""새로운 일을 시작하는 용기속에..
JPA Java Persistence API 로서 영속성 프로그래밍을 위한 라이브러리 영속성: 프로그램이 종료되어도 사라지지 않는 데이터의 특성을 의미 스프링에서는 JPA를 구현한 프레임워크는 대표적으로 Hibernate가 있고 그 이외에도 EclipseLink, DataNucleus 등이 존재한다. hibernate 자바 언어를 위한 객체 관계 매칭 프레임워크, 객체 지향 도메인 모델을 관계형 데이터베이스로 매핑을 위한 프레임워크 ORM 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 의미 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용 사용하는 언어가 들ㄴ 것에 대한 불일치를 해결 Persistence API라고도 불린다. 장점 비즈니스 로직에 좀 더 집중..
- Total
- Today
- Yesterday
- Command Line
- 그래프
- Python
- django
- Pattern
- Linux
- DRF
- setattr
- thread
- BFS
- 파이썬
- 2021 KAKAO BLIND RECRUITMENT
- docker
- Collections
- 면접
- PostgreSQL
- 카카오
- headers
- dockerignore
- docker-compose
- 알고리즘
- Spring
- 자바
- 프로그래머스
- postgres
- ubuntu
- env
- Java
- 백준
- Celery
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |