전체 글 281

비동기 클라이언트 수신 SseEmitter 사용법과 어노테이션 끄적

private Map emitterMap = new HashMap();public Optional get(Integer userId) { // userId에 해당하는 SseEmitter를 emitterMap에서 가져옴 SseEmitter result = emitterMap.get(getKey(userId)); // 가져온 결과를 로그에 기록 log.info("Get Emitter from Redis {}", result); // 결과를 Optional로 감싸서 반환 return Optional.ofNullable(result);}private String getKey(Integer userId) { return "emitter:UID:" + us..

성장욕구와 기부의 보람 [항해 99 잔디기부 캠페인]

항해 99에서 잔디 기부 캠페인을 해서 잔디 기부를 했다.개발자 커리어 개척 캠프 항해99 | 잔디 기부 캠페인 https://git-wrapped.com/profiles/MyoungSoo7 GitHub Wrapped 2024 - Your Coding Year in ReviewLike Spotify Wrapped, but for your GitHub activity! See your top languages, commit streaks, most productive days, and more in an engaging story format. Get your 2024 coding year in review now.git-wrapped.com 항해 99에 잔디를 기부하면서 내 git을 재미로 되돌아 볼수..

스프링부트 3.x 연구

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes Spring Boot 3.0 Release NotesSpring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss. - spring-projects/spring-bootgithub.com v3.0자바17지원 , Graal 22.3이상(상당한 메모리 및 시작 성능개선) , Native Build Tools Plugin 0.9.17 이상 필요, 스프링 시큐리티 6.0, 스프링인터그레이션 6.0, 그래프ql 1.1 , ..

스프링부트 2.x 연구

v2.0https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release-Notes Spring Boot 2.0 Release NotesSpring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss. - spring-projects/spring-bootgithub.com 자바8 이상, 톰캣 8.5 , 플라이웨이5, 하이버네이트 5.2, 타임리프 3 , 스프링웹플럭스(비차단 반응형대안), 그래들4.x이상, 코틀린1.2.x 지원, 속성으로 redis기본값구성, 애니메이션 gif배너지원 http..

스프링부트 버전 1.x 대 연구

v1.1메이븐을 사용하여 실행, 타임리프, JSP  지원, 지표 및 엔드포인트 , Flyway 로 이제 데이터베이스 마이그레이션에 대한 자동구성제공v1.2이메일 지원, 배너속성( ${}) 지원, 잭슨 커스터마이징 , JNDI( datasource 및 JMS빈 모두조회) v1.3스프링4.2이상이 필요, 스프링시큐리티4.0 이상, 라이브리로드 지원, 캐시자동구성 지원, 세션테이터 저장(server.session.store-dir) , 고급 http 세션구성(server.session.*) , 엔드포인트( /logfile , /flyway, /liquibase 추가 및 CORS 지원) , .env 지원v1.4하이버네이트5.0이상 , 서버헤더( 속성이 설정되지 않은면 응답헤더는 설정안됨) , 스프링4.3이상 ,..

스프링을 적용한다는건...

[요구사항]- 해외직구를 위한 원화 결제 준비 기능 개발- 주문번호, 외국통화종료, 외국통화기준 결제 금액1. 기본로직 환율 가져와서, 환율 값 계산하고, 환전된 원의 유효기간을 구한다.여기서 url에서 가져오는 환율정보를 가져오는 기술적 로직과업무적로직은 향후 추가 될 수 있다. 그래서 아래와 같이 구조 개편을 한다.2. 인터페이스 객체지향 의존성역전원칙 적용 ( Object Factory - IOC/DI도 적용) PaymentService 에 ExRateProvider를 구현하고 환율 구하는 부분을 클래스로 따로 뺀다. 이렇게 하면 환율 적용하는 방식의 변동에 유연하게 대응할 수 있다. (환율 수수료 무료 등 정책에 유연한 대응)  3. 객체지향설계 원칙중 개방폐쇄원칙을 적용해서 변하는 부분과 변하지..

IT엔지니어를 위한 AWS운영의 기본과 노하우 정리

[1] AWS 운영 기초AWS 시스0템 운영에는 계정 운영, 로그 운영, 모니터링, 패치 적용, 백업과 복원 운영, 보안과 통제, 감사 준비, 비용최적화의 8가지가 있다.온프레미스에서 클라우드로 가는 건 장비 운영 및 유지보수가 불필요하고 온디맨드 셀프서비스(elastic, 필요할 때마다 자원요청- 서버,스토리지,네트워크)와 신속한 구축 및 쓴만큼 지불하기만 하면 되기 때문이다. 그리고 스케일업과 다운이 쉽기 때문이다. 그리고 인프라운영에 있어서 aws와 공동으로 책임을 지기 때문에 위험 분산이 된다.잘설계된 아키텍처는 운영우수성, 보안, 안정성, 성능효율성, 비용최적화, 지속가능성 등을 만족한다. [2] AWS 입문( VPC , EC2 , EBS, RDS  , ELB)1) VPC : AWS 시스템의 기..