AOP (Aspect Oriented Programming) 들어가며 공통 관심사항(cross cutting concern) vs 핵심 관심사항(core concern) 분리 핵심 기능에 부가 기능(ex. 호출 시간 측정, 트랜잭션)을 추가했다. 핵심 기능을 담당하는 코드에서 흩어져 나타나는 부가 기능 코드는, 말 그대로 부가적이기 때문에 적용이 되는 대상(Target)이 있어야 의미가 있다. 두 기능을 무조건 분리하기가 애매하다. 부가 기능을 여러 메소드에서 공통으로 사용한다고 해보자. 부가 기능 코드가 중복된다. 요구사항이 변경되서 부가 기능 코드를 수정해야 한다. 여러 메소드에서 사용한 부가 기능 코드를 일일히 수정해야 한다. 위 상황에서 하나의 관심, 핵심 비즈니스 로직에만 집중하는 단일 책임의 ..
IoC 제어의 역전(Inversion of Control)? 나 자신이 제어권을 가지고 있지 x, 나 이외의 누군가가 의존성에 대한 제어권을 가지고 있다. 어떤 객체가 사용하는 의존 객체를 직접 만들어서 사용하는게 아니라 주입 받아서 사용하는 것을 말한다. 1. 의존성에 대한 제어권 일반적인 경우 "내가 쓸 놈은 내가 만들어 쓸게" class OwnerController { private OwnerRepository repository = new OwnerRepository(); } OwnerController가 OwnerRepository를 생성한다. 의존성에 대한 제어권 => 본인(OwnerController) IoC : 역전된 경우 "내가 쓸 놈은 이 놈인데... 누군가 알아서 주겠지" class ..
Optional 기초 : NPE에서 벗어나보자. 들어가며 WAS log에서 NullPointerException을 발견했던 과거 발생 시점을 추적하기가 어려웠다. 스택 트레이스 보는데도 모르겠음. 메서드를 짜는데 객체가 없을 경우 null을 리턴 x 100(반복) null 체크를 계속 해야 하는 불편. 코드가 거슬린다. (if 널 존재여부...) 까먹었을까봐 불안하다. 그러던 중 스프링 강의에서 객체를 Optional로 감싸 NPE를 막는 걸 발견 => 배워야겠다. Optional은 람다, 스트림을 알아야 더 사용하기 좋지만...아직 사용하지 못한다. 그저 Optional만 알았을 뿐. 때문에 람다와 스트림을 몰라도 써먹을 수 있는 Optional의 기초만 정리해보도록 한다. Optional Option..

자바스크립트에서 제공하는 내장 객체 중 Date 객체가 있다. Date는 java를 써봤으면 쉽게 다룰 수 있는데 나는 연월일을 가져오는 것도 몰랐으므로(;) 정리를 해본다. 특정 날짜 Date 객체 생성 및 날짜(연,월,일,요일) 가져오기 주의할 점은 월을 가져올 때 0부터 시작하므로 특정 날짜를 생성할 때는 특정 월 -1을 해줘야 원하는 날짜로 세팅되고 이를 가져올 때는 +1을 해야 원하는 날짜를 가져올 수 있다. 또 getDate()가 일을 가져오는 함수, getDay()는 요일을 가져오는 함수다. 이 때 getDay는 일요일(0)부터 시작하여 값을 반환한다. 그 외에 시분초를 가져오는 함수는 아래와 같다. getHours() getMinutes() getSecond() getMilisecond()

Ant 빌드를 잘 쓰고 있었는데 갑자기 "Could not find the main class: org.eclipse.ant.internal. launching.remote.InternalAntRunner. Program will exit." 창이 뜨면서 정상적으로 실행되지 않았다. 문제가 되는 Ant 빌드의 Run As> External tools configuration을 확인해보니 Separate JRE로 런타임하는 JRE가 1.8으로 설정되어있었다. 구글링을 해보니 여러 jdk를 가지고 있을 때 빌드(run)하면 문제가 발생하는 듯 싶었다. 실제로 나도 jdk 1.6과 1.8을 가지고 있었다. 해결 방법은 간단했다. Run As> External tools configuration -> JRE -..
스택(Stack) 스택(Stack)은 LIFO(Last In First Out)구조로 마지막에 저장한 데이터가 먼저 나온다. 예를 들면 1,2,3이라는 데이터를 넣으면 뺄 때는 반대로 3,2,1 역순으로 출력되는 것이다. 자바에서는 java.util에 Stack이 제공되지만 Stack의 구현 원리는 간단하기 때문에 알아둬서 나쁠게 없다. 특히, 배열을 resizing하는 부분은 java.util.Stack만 쓰던 나에게 아차 싶었던 부분... 예전에 배웠는데 까맣게 잊어버리고 있었다. 다시는 잊지 않도록 정리해본다..ㅠㅠ MyStack.java 1234567891011121314151617181920212223242526272829303132333435363738394041424344public clas..
- Total
- Today
- Yesterday
- github actions components
- spring retry
- github actions 기초
- csv 라이브러리
- utf8mb3
- 쿼리 파라미터 바인딩
- TCP연결
- CGLIB프록시
- 엔티티와값객체
- 도메인구성요소
- read timeout
- online ddl
- 콜레이션변경
- 코프링
- 4Way Handshake
- github actions 구성요소
- mysql 이모지
- opencsv
- http커넥션
- 이모지입력오류
- 콜레이션
- file
- csv to bean
- jpa 쿼리 로그
- tcp커넥션
- 문자집합변경
- mysql 온라인 ddl
- hibernate 쿼리 로그
- AOP
- spring boot3 쿼리 로그
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |