일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 해외주식 양도세 신고
- oracle group by
- 재귀함수 예제
- tomcat log
- 최대공약수 예제
- 피보나치 예제
- CSTS 폭포수 모델
- js 자동완성
- katalon 사용법
- katalon
- 피보나치함수 예제
- 톰캣 실시간 로그
- javascript 자동완성
- katalon 비교
- 재귀 예제
- Katalon Recorder 사용법
- 피보나치함수
- 홈택스 해외주식 양도세
- 테스트 자동화
- bfs 미로탐색 java
- 주식 양도세 신고방법
- 한국투자증권 해외주식 양도세
- java.sql.SQLSyntaxErrorException
- 해외증권 양도세 한국투자증권
- 한국투자증권 양도세 신고
- git 연동
- 국세청 해외주식 양도세 신고방식
- katalon xpath
- recursion example
- katalon 자동화
- Today
- Total
목록전체 글 (390)
엄지월드
@TestConfiguration을 통해서 직접 Bean을 주입해 줄 수 있다. @Autowired private MemberRepositoryV3 memberRepository; @Autowired private MemberServiceV3_3 memberService; @TestConfiguration static class TestConfig { @Bean DataSource dataSource9) { return new DriverManagerDataSource(URL, USERNAME, PASSWORD); } @Bean PlatformTransactionManager transactionManager() { return new DataSourceTransactionManager(dataSourc..
프록시를 사용하면 트랜잭션을 처리하는 객체와 비즈니스 로직을 처리하는 서비스 객체를 명확하게 분리할 수 있다. 트랜잭션 프록시 코드는 아래와 같이 되어 있다. @Transaction이 적용되어 있는 서비스를 호출하게 되면 EnhancerBySpringCGLIB 이런식으로 클래스 이름이 변경되게 되는데, @Transactional 을 선언하게 되면 스프링에서 약간의 조작을 통해 해당 Service를 상속 받게 된다.나머지는 스프링 트랜잭션 AOP가 자동으로 처리해준다. CGLIB 라이브러리를 통해서 프록시를 만들어낸 것이다. AOP인지 테스트는 AopUtils.isAopProxy()를 통해서 진행할 수 있다.
스프링이 TransactionTemplate이라는 편리한 기능을 제공스프링은 `TransactionTemplate`라는 템플릿 클래스를 제공한다. 트랜잭션을 없애기 전 코드 트랜잭션을 없앤 코드.PlatformTransactionManager에 new TransactionTemplate(transactionManager)를 주입한다. (this.txTemplate은 TransactionTemplate txTemplate 이다) 한번 더 없앨 수 없는 이유는 bizLogic() 메서드를 호출하면 SQLException 체크 예외를 넘겨준다. 해당 람다에서 체크 예외를 밖으로 던질 수 없기 때문에 언체크 예외로 바꾸어 던지도록 예외를 전환했다. - 체크 예외(Checked Exception) : 컴파일러가..
5월 국내 배당주입니다. (1개밖에 없네요)배당을 받기 위해서는 배당락일 전날까지 매수를 완료하여야 합니다. ESR켄달스퀘어리츠현재가 : 4,400배당락일 : 5월 30일, 11월 29일 배당금지급일 : 9월8일, 3월 15일배당률 : 연 6.1%배당금 : 137원
문제 방법 어려운 문제라고 생각하고, 어떻게 접근해야 하나 싶었다. 하지만 푸는 법을 보니 어렵지 않은 문제였다. 간단히 말하면 주어진 범위에 대해서 모두 1이나 true로 만들어서 색칠해주고, 전체 배열을 돌면서 1이나 true인 부분을 더해주면 되는 문제였다. 실수했던 부분은 아래와 같이 x~y까지 for문을 돌 때에
private final PlatformTransactionManager transactionManager PlatformTransactionManager를 통해 트랜잭션 매니저를 주입 받는다. 지금은 JDBC 기술을 사용하기 때문에 `DataSourceTransactionManager` 구현체를 주입 받아야 한다. 물론 JPA 같은 기술로 변경되면 `JpaTransactionManager`를 주입 받으면 된다. transactionManager.getTransaction() 트랜잭션을 시작한다. `TransactionStatus status`를 반환한다. 현재 트랜잭션의 상태 정보가 포함되어 있다. 이후 트랜잭션을 커밋, 롤백할 때 필요하다. new DefaultTransactionDefinition(..
프레젠테이션 계층 UI와 관련된 처리 담당 웹 요청과 응답 사용자 요청을 검증 주 사용 기술 : 서블릿과 HTTP 같은 웹 기술, 스프링 MVC 서비스 계층 비즈니스 로직을 담당 주 사용 기술 : 가급적 특정 기술에 의존하지 않고, 순수 자바 코드로 작성 데이터 접근 계층 실제 데이터베이스에 접근하는 코드 주 사용 기술 : JDBC, JPA, File, Redis, Mongo ... 순수한 서비스 계층 여기서 가장 중요한 곳은 어디일까? 바로 핵심 비즈니스 로직이 들어있는 서비스 계층이다. 시간이 흘러서 UI(웹)와 관련된 부분이 변하고, 데이터 저장 기술을 다른 기술로 변경해도, 비즈니스 로직은 최대한 변경없이 유지되어야 한다. 이렇게 하려면 서비스 계층을 특정 기술에 종속적이지 않게 개발해야 한다. ..
문제 방법 정답률이 70%여서 너무 쉬운 문제인 줄 알았지만, 약간의 생각이 필요한 문제였다. score 값과 idx 값을 함께 다루기 위해서 People이라는 Model을 사용했다. 그러고 나서 우선순위큐로 풀면 쉽게 풀 수 있을 것 같아서 사용하였는데, 기본적으로 우선순위큐를 poll할 때에는 작은 값부터 빼내기 때문에 처음부터 넣을때 reverse해서 넣도록 처리했다. 조금 헷갈렸던 부분은 idx는 큰 값이 있는 위치인 줄 알고 idx를 따로 저장했었다가, 알고 보니 정답은 오름차순으로 출력하면 되어서 동일하게 queue2로 우선순위큐로 선언해서 사용했다. 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io...
문제 방법 대부분 replace를 사용해서 풀고 있어서 동일하게 진행했다. 단, 염려했던 부분은 어떤 문자로 replaceAll 할 것인가? 였고 아무것이나 문자로 replace하면 꼬일 수 있을것 같아서 고민했지만 다행히 문제 없이 진행되었다. replaceAll 후에 첫번째 인덱스부터 마지막 인덱스까지 돌면서 내가 만든 문자의 갯수를 셌다. 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { // 1543 public static ..
문제 방법 정답률이 30%여서 시간초과 걱정을 했다. 그래서 빠른 방법을 고민했고, O(N) 속도인 Set을 쓰고 Set에서도 Integer가 아닌 String으로 바로 비교했다. Set와 Set간의 속도 차이가 있을까? 궁금해서 gpt에게 물어봤지만 차이가 없다고 답변이 왔다. 그래서 set.add(Integer.parseInt(st.nextToken)); 부분에서 Integer.parseInt라도 줄여보기 위해 Set을 사용했다. 그리고 나서 Set의 속도가 궁금해서 Integer로 바꾸고 Integer.parseInt(st.nextToken)) 으로 바꿔서 해보았는데, 아래와 같이 540ms과 604ms가 나왔다. 결론적으로는 별 차이 없었다. 코드 import java.io.BufferedRead..