목록웹 (104)
개발일기장
의도한건 아니였는데 홋카이도 일정에 동물원 오픈날짜가 딱 겹치는게 아닌가. 후기 보니깐 홋카이도 오면 여기 꼭 들려라고 해서 가게 되었다. 아침에 삿포로역에서 아사히카와역까지 기차타고 한시간 반 정도 걸린다. 라일락 뭐시기 기차다..아사키하와 역에서 동물원까지 가는 버스가 9시 40분에 하나가 있었고, 30분뒤에 더 있었다.그래서 대충 역사에서 뭐 먹고 '9시30분쯤 줄 서면 되겠지?' 해서 시간 맞춰서 나갔는데 줄이 엄청 길었고 결국 10시 10분 버스 타게 되었다. 추운곳에서 30분동안 벌벌떨면서 버스를 기다렸다..버스타고 30분 정도? 타면 동물원에 도착을 했다. 입장료는 성인 1000엔. 근처에 동물원 말고는 횡하고 아무것도 없었다. 1번으로 전시하는곳은 팽귄들인데 4종류를 한번에 모아놓고 사육..
뭔가 개인적으로 일하면서 부족하다고 생각되거나 공부가 필요하다고 생각되는게 점점 늘어난다. 1. Java 동시성 프로그래밍쪽 공부가 필수적인것 같다는 생각이 요즘 많이 든다. 경합이라던가.. 일단 이거 강의들으면서 천천히 배우는게 맞는것 같다. 지금 쓰는 시스템이 Executor framework로 사용하는것 같은데 배워두면 도움이 되지 않을까 싶은 생각.https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EA%B3%A0%EA%B8%89-1 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런김영한 | 멀티스레드와 동시성을 기초부터 실..
아니 Copilot은 무적인가? 그냥 대충 말해도 찰떡같이 말하고 순서도를 그려주는 코드를 작성해준다. 이렇게까지 해주는데 내가 공부를 할 필요가 있을까 생각이 든다. 1. newInstance()시점평소에 소스코드만 보고 설정값은 안봤는데 여기서 Transaction에서 순서가 끊어짐을 느꼈다.분명 DataSource에서 connection은 가지고 오는데 남는것은 session만 있는게 아닌가? 그래서 하나씩 끼워맞추면서 이해는 했는데 이부분 정리가 필요한 것 같다. SqlSessionManager에서 Connection을 가지고 오는 순서도를 그려달라고 했다.일단 여기까지는 문제가 없다. 문제는 getConnection부분이다. build나 create같은거는 application 시작 시점에 그대..
연휴라서 시간이 남는다.이것저것 하느라 바빠서 이제서야 고민해볼 시간이 생긴것 같다.. 아직도 의문인게 왜 회사에서 직접 프레임워크를 만들어쓰는지다. 뭐 특별한게 있으면 모르겠는데 몇몇 부분 빼면 죄다 Springboot에서 구현이 가능함Application에서 DB접속 관련해서도 라이브러리를 그냥 사용하지 않고 상속받아서 커스텀을 한다. 의미있는지는 모르겠는데 모니터링 용도로 그렇게 만든 것 같다. DataSource를 상속받아서 직접 만들고, Apache Common Pool을 가져다가 GenericObjectPool을 이용해서 커스텀이 되어있는 상태다. 회사소스를 가지고 올 수 없기 때문에 대충 Copilot한태 만들라고 했다. Custom GenericObjectPool 구현import org.a..
쿼츠로 batch job을 돌리는데 가끔씩 connection을 획득하지 못하고 지혼자 죽어서 그만.sql는 금방금방 만드는데 Oracle에 대해서 정확히 몰라서 Copilot의 도움을 받기로 .......가설1. Transaction이 엄청 긴 놈이 터지는 것으로 시작되었는데 거기서 sql session을 몇만개 수행함.하나의 connection이 사용 할 수 있는 session 에는 제한이 있는가?DBA한태 물어봤는데 무한대로 쏠 수 있다고 했지만 coplitot은 아니라고함 Q1.오라클 DB에서 하나의 connection 이 수행할 수 있는 session의 갯수가 정해져 있어? A1.네, 오라클 데이터베이스에서 하나의 커넥션(connection)이 수행할 수 있는 세션(session)의 개수는 제한..
Promise.all ~~~) 이렇게 해서 exception handling해도 되는데 한번에 값을 다 받와서 사용하려고 await 붙이면 그렇게 할 수도 없고 try - catch로 해도 소용이 없음 input * 400ms만큼 쉬었다가 홀수면 resolve, 짝수면 reject나게 만든 Promise들에 대해서 실행을 시킴 function promise(value) { return new Promise((resolve, reject) => { setTimeout(() => { if (value % 2 === 1) { resolve(`${value} -> PASS`); } else { reject(`${value} -> FAIL`); } }, value * 400); }) } async function..
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B3%A0%EA%B8%89%ED%8E%B8/dashboard 스프링 핵심 원리 - 고급편 - 인프런 | 강의 스프링의 핵심 원리와 고급 기술들을 깊이있게 학습하고, 스프링을 자신있게 사용할 수 있습니다., 핵심 디자인 패턴, 쓰레드 로컬, 스프링 AOP스프링의 3가지 핵심 고급 개념 이해하기 📢 수강 www.inflearn.com 공통 로직 분리를 위해서 사용함.. https://tlqckd0.tistory.com/105 Spring Proxy Factory Java에서 Proxy사용하는 방법에 대해서 두가지 했었음 1. J..
Java에서 Proxy사용하는 방법에 대해서 두가지 했었음 1. Jdk 동적 Proxy >> Interface가 있어야함. InvocationHandler를 구현해서 객체 생성 후 Proxy를 생성해서 사용 https://tlqckd0.tistory.com/102 Proxy ... Proxy 사용법. 1. InvocationHandler를 구현한 객체를 만듬 생성자에 실제 method를 수행할 객체를 넣어줘야함.. 그리고 다른것도 넣어도 될듯..? args에는 method를 호출 했을 때 넣어주는 인자값들. @Slf4j publ tlqckd0.tistory.com 2. CGLIB >> 인터페이스없이 구체 클레스(인터페이스도 됨)를 사용. MethodInterceptor를 구현 후 Enhancer에 등록 ..