4차산업혁명의 일꾼/Java&Spring웹개발과 서버 컴퓨터 263

카프카와 레디스 사용법 정리

1. 카프카(Kafka)@Beanpublic ProducerFactory producerFactory() { Map configs = new HashMap(); configs.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); configs.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); configs.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class); return new DefaultKafkaProducerFactory(configs);}@Beanpubli..

비동기 클라이언트 수신 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 시스템의 기..

검색엔진과 챗GPT 동시에 검색하기

https://spartacodingclub.kr/blog/chatgpt-extensionprogramme 초보자도 사용할 수 있는 ChatGPT 크롬 확장 프로그램 5가지ChatGPT, 좀 더 똑똑하게 사용할 수는 없을까요? 생산성을 200% 높여주는 크롬 확장 프로그램 5가지를 소개합니다.spartacodingclub.kr챗GPT를 크롬확장으로 사용하는거야.. gpt 매니아라면 다 아는 것이고MaxAI.me: 검색엔진과 챗GPT 동시에 검색하기이 동시 검색이 상당히 매력적이죠~! ㅎㅎㅎ다만 유료라는 것..Sider: 검색 엔진과 AI 챗봇 답변 동시에 비교하기 https://mediabrain.news/3835/ GPT-4o 출시! ChatGPT의 혁신적인 기술 업데이트 | 미디어브레인 뉴스룸GPT-..

인텔리제이 오랜만에 복습~! 알짜 사용~!

https://www.youtube.com/watch?v=0HQkGMJOxwo 자 인텔리제이~! 뭐든지 단축키를 잘써야 도구 활용도가 높아진다.~!이전에 알았지만 다시한번 정리해보자 3년전 영상이네요ㅎㅎㅎㅎ  4년차의 학습법을 한번 들어봅시다.ㅎㅎㅎ 1. ALT + Insert :  Generate~!  이거는 뭐 그냥 잘 쓰던거에요~!2. Ctrl + Shift + I : 코드 구현부 즉시보기이거는 써본적이 없는데... 코드 작성하면서 위라래 쓰는 거는... 스타크래프트식 부대지정이 가능해서... 그거 활용하는데...3. Ctrl + Alt +V : 변수 자동 완성흠.. 변수는 제가 직접 작성하는 편이라... AI가 제안해주기도 하지만... 그래도 이런게 있다는 것은 알아두는 것은 좋은듯 합니다.4. ..

인텔리제이 젯브레인 - AI Assistant~!와 vscode보다 편리한 fleet

https://www.youtube.com/watch?v=-NnYtfzO7qU AI 코파일럿이 자동완성으로 상당히 쓸만했다.https://www.youtube.com/watch?v=R-lIeSR8-hE자 여기서 추천해줬듯이ㅎㅎㅎㅎ 그러나.. 대용량 학습으로 인해 대용량 학습과는 별개로..  AI Assistant는 효과가 있나? 방통대를 졸업하며 드디어 개인 계정을 갱신하면서  AI 기능도 1년 같이 구독했다. 인텔리제이 모든 기구 쓰는거.. 파이참까지 하니 40만 가량이 나온다... 그만한 가치가 있나 한번보자~!음... 너무 질렀나... 그래도 이런 AI 활용기술을 배우는 것은 중요한 것 같다.1. 리팩토링 분야 [AI action] 어떻게 변경해야 되는지 코드에서 바로 물어볼수 있다.2. [AI C..

JPA 간단정리3

김영한님의 자바ORM 표준 JPA 프로그래밍책으로 공부를 한다. 책으로 공부하는 것도 좋은듯하다. 스프링데이터 예제 프로젝트로 배우는 전자정부 표준데이터베이스 프레임워크~! jpa는 CRUD를 생성해주므로 생산적이다. 객체 설계중심으로 db와 연동가능하다. jpa는 상속,연관관계,객첵그래프탐색, 패러다임의 불일치 문제를 해결해준다. 객체지향을 통한 성능최적화를 할 수 있으나 잘 못 사용하면 n+1문제가 나타난다. JPA는 통계쿼리 같이 복잡한 쿼리보다는 실시간 처리용 쿼리에 더 최적화 되어 있다.김영한님 강의도 있지만... 책으로 하는게 편하다.https://www.youtube.com/watch?v=ZgtvcyH58ys jpql은 엔터티 객체를 대상으로 쿼리한다.(entity 클래스와 필드) jpql ..

JPA 간단정리 2

이런식의 복합키와 상속구조는... 지양한다.@MapsId는 자식 엔티티의 기본 키를 부모 엔티티의 기본 키와 동일하게 매핑할 때 사용하는데...식별 관계는 부모테이블의 기본 키를 자식테이블로 전파하면서 자식테이블의 기본키 컬럼이 점점 늘어난다  특정상황에 조인 없이 하위 테이블만으로 검색 가능한 것이 식별뭐 classId를 쓰든 EmbeddedId를 쓰든 EmbeddedId가 좀더 객체지향적이라고는 하나, 어쨌건 그냥 비식별 관계로... ID를 생성하면서 자식엔터티에서 ManyToOne으로 다애일 관계를 맺는 형태로 Join하면...간단하긴 하다...// 연관관계 매핑 : 다중성(다대일, 일대다, 일대일, 다대다) - 단방향,양방향 - 연관관계의 주인(외래키를 가진 테이블, 많은 쪽, mapped by ..

JPA 간단 정리 1

데이터중심의 마이바티스와 달리 JPA는 객체 중심의 hibernate 이다.https://www.youtube.com/watch?v=brE0tYOV9jQ&t=98s이 ORM을 쓸줄 모르면~!쓰지 말라고 백기선 님께서 말씀하신다. TDD책에서 등장하신 분이네요~!연관관계 매핑을 제대로 할 지 모르면 쓰면 안된다고 하네요~! 어쨌건, JPA 김영한님 책 보면서 공부한거 정리해 봅니다.  쭈욱 보니까 JPA가 재밌는 건 data 중심에서 객체지향 중심으로 table을 설계한다는 것~! 상속매핑은 부모클래스에 @inhteritance를 사용한다. 조인전략부모클래스에 구분 컬럼을 지정한다. 이 컬럼으로 저장된 자식 테이블을 구분할 수 있다.@DiscriminatorValue("B") // 구분 컬럼에 입력할 값..

백엔드 TDD 비디오가게편

https://github.com/MyoungSoo7/tddtest GitHub - MyoungSoo7/tddtest: tddtesttddtest. Contribute to MyoungSoo7/tddtest development by creating an account on GitHub.github.com 자 유스케이스를 그려보고...TDD는 늘 소스는 내것이 아니라고 가르치니~모두를 위한 소스를 짜는 것을 고민하며..자 업무 시나리오와 개발가능 범위를 자판기편에서 했는데,https://iamipro.tistory.com/533 백엔드와 테스트 주도 개발 자판기편1. TDD 이모저모TDD는 기능중심의 단위 테스트를 해볼수 있고, 이를 연계해 통합테스트까지 가능하다. 사실상 QA 비용이 절감되는 반면.....

백엔드와 테스트 주도 개발 자판기편

1. TDD 이모저모https://github.com/MyoungSoo7/tddtest GitHub - MyoungSoo7/tddtest: tddtesttddtest. Contribute to MyoungSoo7/tddtest development by creating an account on GitHub.github.com  TDD는 기능중심의 단위 테스트를 해볼수 있고, 이를 연계해 통합테스트까지 가능하다. 사실상 QA 비용이 절감되는 반면... 개발시간이 늘어나는 부분이 있다. AC2 애자일 코치 김창준님은 TDD로 개발시간은 15%증가하지만 결함은 60%감소한다고 한다. 결국, 애자일 개발방법론에 있어서 TDD를 하면 결함률을 낮추어 유지보수성이 증가한다는 장점이 있고 Matchers, Hamcr..

이벤터스 월간 볼트 X 커피챗 : 토스증권, 라포랩스, 스윙

신청했고 갔습니다.음 선릉에서 좀 올라가니 나오더라고요.  토스증권 , 라포랩스, 스윙의 여러 연사가 있었는데, 2017년 JSP를 포함한 풀스택을 배운 저로서는 BE/FE/Server 이렇게 나뉘는 흐름이 대세가 된 것을 다시금 확인하고 있었습니다. 2020년에 VUE를 처음 접하면서 BE/FE로 나뉘고 이게 대세가 될 거라고 들었는데, 결혼으로 인해 그냥 풀스택으로 있었습니다.이제서야, 4년전의 그 BE/FE로 나뉘고 구체적으로 어떻게 구분이 되는가 들으면서 좀더 명확히 알 수 있어 좋았습니다.이력서/경력/포폴은 무엇인가 한것보다 문제해결과정을 담는 것이 좋고, 과제는 요구사항구현과 TDD,Kafka,DDD,kotlin, MSA가 대세로 많이 쓰이고 잘 알면 좋다는 군요그리고 무엇보다 사용하는 기술을..

2024년 9월을 맞이하며 항해 DEV LAB 후기

1. 항해 및 DEV LAB 소개https://hanghae99.spartacodingclub.kr/ IT 커리어 성장 코스 항해99, 개발자 취업부터 현직자 코스까지항해99는 실무에 집중합니다. 최단기간에 개발자로 취업하고, 현직자 코스로 폭발 성장을 이어가세요. 실전 프로젝트, 포트폴리오 멘토링, 모의 면접까지.hanghae99.spartacodingclub.kr항해에는 취업리부트코스, 프론트엔드, 백엔드 AI의 다양한 코스들이 있습니다.2024년 9월1일 시점에 코테스터디가 3기가 끝나갑니다.개발자 소사이어티적인(?) 스터디모임도 있네요 이 항해에서 주관하는 항해 DEVLAP 강의 행사 연사분은 시니어3분 주니어 2분이셨습니다.그 중에 가장 인상적이었던것은 허재 연사님의 클린 아키텍처 : 무한 성장..