대규모트래픽 분산처리를 위한 자바 서버개발 시즌3 - 윤석진
1. introduce spring cloud
2. Message driven spring cloud stream with rabbitmq
3. API Gateway with spring cloud gateway
4. discovery pattern with eureka
5. API Client with ribbon / Feign Client
6. monitoring with micrometer
7. spring cloud config
이펙티브 자바 3/E 효과적으로 읽기 - 강대권, 박재성(주니어), 한용규, 조이수, 이수훈
자바 6까지 다루던 이펙티브 자바 2판이 자바 7, 8, 9를 다루기 위해 3판으로 다시 돌아왔습니다.
그동안 객체 지향에 치중하던 자바에 새로 도입된 함수형 프로그래밍 요소도 자세히 알아봅니다.
- 이펙티브 자바 Effective Java 3/E(http://www.yes24.com/24/Goods/65551284)를 읽으며 스터디를 진행합니다.
- 자바 8, 9에서 새로 다룬 내용이 과연 무엇인지 비교 정리합니다.
- 기존 2판에서 다루던 내용보다 3판에서 새로 다루는 내용에 많은 시간을 편성합니다.
- 2명 씩 조를 나누고 돌아가면서 각 주차의 주제에 대해 공부 후 발표하는 식으로 진행합니다.
- Java Enum 활용기(http://woowabros.github.io/tools/2017/07/10/java-enum-uses.html)와 같은 사례들을 찾아보고 정리하면 더 좋습니다.
- 아래의 유튜브를 참고하며 진행합니다.
1주차 : 1장 들어가기, 2장 객체 생성과 파괴 읽기
2주차 : 3장 모든 객체의 공통 메서드 읽기, 4장 클래스와 인터페이스 읽기
3주차 : 5장 제네릭 읽기, 6장 열거 타입과 애너테이션 읽기
4주차 : 7장 람다와 스트림 읽기
5주차 : 중간 세미나
6주차 : 8장 메서드, 9장 일반적인 프로그래밍 원칙 읽기
7주차 : 10장 예외, 11장 동시성 읽기
8주차 : 12장 직렬화 읽기
9주차 : 회고
개발 실무 디자인 패턴 - 제한재, 홍광필
목표
OOP 개발 패턴을 실습을 통해 확실히 이해하여 실무에 즉각 활용할 수 있도록 한다.
- 개발자간의 의사소통 원할
- 재사용 및 유지보수성 증가
커리큘럼
1~3 GoF 디자인패턴 이론
각 패턴의 목적과 활용방법에 대한 지식을 습득하고 실무 서비스로직에 적용 중인 패턴을 공유한다.
1주차 - 생성 패턴
패턴명 | in JDK | in Practice |
---|---|---|
Abstract Factory | javax.xml.xpath.XPathFactory | |
Builder | java.lang.StringBuilder | |
Factory Method | java.util.Calendar | |
Prototype | java.lang.Object#clone() | |
Singleton | java.lang.Runtime#getRuntime() |
2주차 - 구조 패턴
패턴명 | in JDK | in Practice |
---|---|---|
Adapter | java.util.Arrays#asList() | |
Bridge | java.util.Collections#newSetFromMap() | |
Composite | java.awt.Component | |
Decorator | java.util.Collections#synchronizedXXX() | |
Facade | javax.faces.context.ExternalContext | |
Flyweight | java.lang.Integer#valueOf(int) | |
Proxy | java.lang.reflect.Proxy |
3주차 - 행위 패턴
패턴명 | in JDK | in Practice |
---|---|---|
Chain of Responsibility | java.util.logging.Logger#log() | |
Command | java.lang.Runnable | |
Interpreter | java.util.Pattern | |
Iterator | java.util.Iterator | |
Mediator | java.util.concurrent.Executor#execute() | |
Memento | java.util.Date | |
Observer | java.util.EventListener | |
State | javax.faces.lifecycle.Lifecycle#execute() | |
Strategy | java.util.Comparator#compare() | 쿠폰 - 100원 할인 - 10% 할인 |
Template Method | java.util.AbstractList | |
Visitor | java.nio.file.FileVisitor |
4~6 기본 & 자주쓰는 디자인 패턴 특화 실습
https://github.com/iluwatar/java-design-patterns
난이도 Beginner 인 패턴들을 위주로 각 패턴에 특화된 요구사항을 정의하고 패턴을 적용하여 구현해보는 실습을 진행합니다.
- Factory Method
- Prototype
- Singleton
- Adapter
- Decorator
- Facade
- Proxy
- Template Method
- Iterator
- Observer
- Strategy
- State
- Chain of Responsibility
7~9 디자인 패턴 실습
이론으로 학습한 패턴을 실제로 어플리케이션에 구현하는 작업을 합니다. 구현할 대상은 간단한 주가 데이터 크롤러 및 거래 알고리즘 및 시뮬레이터 입니다. 스터디 리더의 언어와 같은 언어로 같이 프로젝트에 참여할 수도 있고, 새로 객체 지향을 배워본 언어에 개인적으로 적용하고 코드리뷰를 함께 할 수 있습니다. (파이썬, 자바 예정)
7주차 - 요구사항 정의 및 데이터 크롤링
- 만들고자 하는 어플리케이션의 요구사항과 변경사항을 나열합니다.
- finance.naver.com 에서 KOSPI 데이터를 크롤링 하는 간단한 프로그램입니다.
- 크롤러에 대한 failover 기능을 구현하기 위해 naver 에서 실패시 finance.daum.net 에서 가져올 수 있어야 합니다.
- 기타 스터디에서 새로운 요구사항이 구현될 수 있습니다.
8주차 - 알고리즘에 기반하여 ETF 트레이딩을 구현하고 계좌 수익률 구현
- 크롤링한 간단한 데이터를 기반으로 트레이딩 알고리즘을 작성하고 그에 따른 수익률을 추적할 수 있어야 합니다. (트레이딩 알고리즘은 요구사항으로 간단하게 정의되어있습니다)
- 알고리즘은 다양하게 구현될 수 있으며 알고리즘은 언제든지 교체될 수 있어야 합니다.
- 프로그램은 실시간으로 동작하는 모듈이라고 가정하고 작성합니다.
9주차 - 알고리즘 시뮬레이터 구현
- 실시간으로 동작하는 모듈로 가정하고 작성된 프로그램에서 과거의 데이터를 기반으로 시뮬레이터를 구현합니다.
Elastic Search & Kafka - 천정대, 이시훈, 강은지
elastic search
1주차 : 일래스틱 스택 소개, 시작하기
2주차 : 유사도 검색
3주차 : 일래스틱서치 분석
5주차 : 데이터 분석
6주차 : 로그스태시를 활용한 데이터 파이프라인 구축
7주차 : 키바나를 활용한 데이터 시각화
8주차 : 일래스틱 엑스팩
9주차 : 일래스틱 스택 운영 환경에 적용하기
Elastic과 함께
참고도서, 구글링을 통해서 얻은 정보를 잘 정리해서 발표!! 검색하면 90%
1주차 : ElasticSearch 소개 및 설치
2주차 : Elastic 제품군 알아보기 & 사용하기
3주차 : ElasticSearch 개념 소개 [ Index, Mapping, search... ]
4주차 : ElastisSearch Query 심화1
5주차 : ElastisSearch Query 심화2
6주차 : Log 데이터를 활용한 기본 아키텍처 구현 및 실습
7주차 : Log 데이터를 활용한 심화 아키텍처 구현 및 실습
8주차 : 팀 사용기 + 활용방법 / 머신러닝을 활용한 이상징후 탐지
여유시간이 있을경우 진행하면 좋은 내용들
- 클러스터, 보안, 형태소분석
공식 문서 : https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
참고 도서 : http://book.naver.com/bookdb/book_detail.nhn?bid=8769630
번역글 : https://iju707.gitbooks.io/elasticsearch/content/
spring과 함께 kafka 탐험하기
# 학습 목표
- Kafka 의 기본 구조 이해
- Spring 에서 Kafka 잘 사용하는 방법 익히기
# 참고 자료
- https://kafka.apache.org/
- https://spring.io/projects/spring-kafka
# 주차별 진행 내용
1. Kafka 개요 파악 - https://kafka.apache.org/intro
2. Kafka 설치 및 구성 - https://kafka.apache.org/quickstart
3. Kafka producer
4. Kafka consumer
5. Kafka 내부 매커니즘
6. Spring-kafka 사용해보기 - https://spring.io/projects/spring-kafka
7. Kafka use case 탐구 - https://kafka.apache.org/uses
8. Kafka 관리
9. Kafka 모니터링
클라우드 네이티브 자바 - 김윤희
클라우드가 기본인 시대에 필요한 스프링 기술들을 습득해보자!
클라우드 네이티브 자바 책을 기본으로 진도를 나가고 스터디원은 주차별 맡은 분량을 발표한다.
1 클라우드 네이티브 애플리케이션 & 스프링부트
2 12요소 애플리케이션 설정 & 테스트 & 애플리케이션 마이그레이션
3 REST API
4 라우팅 & 엣지서비스
5 데이터관리 & 메시징
6 배치 처리와 태스크 & 데이터 통합
7 관측가능한시스템
8 서비스 브로커 & 지속적 전달
도메인 주도 설계 구현 책 읽기 스터디 - 황영주
개요
- DDD에 대해 이해하고 실무에서 구현 할 수 있는 방법에 대해 익혀보자.
주차별 진행 내용
- 총 15장인 책을 주차별로 2장씩 읽고, 의견 공유
진행방법
- 다같이 미리 읽어 오고, 주차별 진행자를 정해 해당 주차의 주제에 대해 공유하고 토론한다