Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Content Zone

Table of Contents

...

대규모트래픽 분산처리를 위한 자바 서버개발 시즌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판으로 다시 돌아왔습니다.
그동안 객체 지향에 치중하던 자바에 새로 도입된 함수형 프로그래밍 요소도 자세히 알아봅니다.

...

1주차 : 1장 들어가기, 2장 객체 생성과 파괴 읽기
2주차 : 3장 모든 객체의 공통 메서드 읽기, 4장 클래스와 인터페이스 읽기
3주차 : 5장 제네릭 읽기, 6장 열거 타입과 애너테이션 읽기
4주차 : 7장 람다와 스트림 읽기
5주차 : 중간 세미나
6주차 : 8장 메서드, 9장 일반적인 프로그래밍 원칙 읽기
7주차 : 10장 예외, 11장 동시성 읽기
8주차 : 12장 직렬화 읽기
9주차 : 회고

...

개발 실무 디자인 패턴

...

1~3 GoF 디자인패턴 이론

...

- 제한재, 홍광필

목표

OOP 개발 패턴을 이해하고 실무에 응용할 실습을 통해 확실히 이해하여 실무에 즉각 활용할 수 있도록 준비한다한다.
 - 개발자간의 의사소통 원할
 - 재사용 및 유지보수성 증가

커리큘럼

1~3 GoF 디자인패턴 이론

  각 패턴의 목적과 활용방법에 대한 지식을 습득하고 실무 서비스로직에 적용 중인 패턴을 공유한다.

  1주차 - 생성 패턴

패턴명in JDKin Practice
Abstract Factoryjavax.xml.xpath.XPathFactory
Builder

...

java.lang.StringBuilder
Factory Method java.util.Calendar
Prototypejava.lang.Object#clone()
Singletonjava.lang.Runtime#getRuntime()


  2주차 - 구조 패턴 

패턴명in JDKin Practice
Adapterjava.util.Arrays#asList()
Bridgejava.util.Collections#newSetFromMap()
Compositejava.awt.Component
Decoratorjava.util.Collections#synchronizedXXX()
Facadejavax.faces.context.ExternalContext
Flyweightjava.lang.Integer#valueOf(int)
Proxyjava.lang.reflect.Proxy


  3주차 - 행위 패턴

패턴명in JDKin Practice
Chain of Responsibilityjava.util.logging.Logger#log()
Commandjava.lang.Runnable
Interpreterjava.util.Pattern
Iteratorjava.util.Iterator
Mediatorjava.util.concurrent.Executor#execute()
Mementojava.util.Date
Observerjava.util.EventListener
Statejavax.faces.lifecycle.Lifecycle#execute()
Strategy

...

4~9 디자인 패턴 실습 (중간 세미나 포함)

...

java.util.Comparator#compare()

쿠폰

- 100원 할인

- 10% 할인

Template Method java.util.AbstractList
Visitorjava.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 디자인 패턴 실습

  이론으로 학습한 패턴을 실제로 어플리케이션에 구현하는 작업을 합니다. 구현할 대상은 간단한 주가 데이터 크롤러 및 거래 알고리즘 및 시뮬레이터 입니다. 스터디 리더의 언어와 같은 언어로 같이 프로젝트에 참여할 수도 있고, 새로 객체 지향을 배워본 언어에 개인적으로 적용하고 코드리뷰를 함께 할 수 있습니다. (파이썬, 자바 예정)

  4주차 7주차 - 요구사항 정의 및 데이터 크롤링

  • 만들고자 하는 어플리케이션의 요구사항과 변경사항을 나열합니다. 
  • finance.naver.com 에서 KOSPI 데이터를 크롤링 하는 간단한 프로그램입니다.
  • 크롤러에 대한 failover 기능을 구현하기 위해 naver 에서 실패시 finance.daum.net 에서 가져올 수 있어야 합니다.
  • 기타 스터디에서 새로운 요구사항이 구현될 수 있습니다.

  5주차 8주차 - 알고리즘에 기반하여 ETF 트레이딩을 구현하고 계좌 수익률 구현

  • 크롤링한 간단한 데이터를 기반으로 트레이딩 알고리즘을 작성하고 그에 따른 수익률을 추적할 수 있어야 합니다. (트레이딩 알고리즘은 요구사항으로 간단하게 정의되어있습니다)
  • 알고리즘은 다양하게 구현될 수 있으며 알고리즘은 언제든지 교체될 수 있어야 합니다.
  • 프로그램은 실시간으로 동작하는 모듈이라고 가정하고 작성합니다.

  6주차 9주차 - 알고리즘 시뮬레이터 구현

  • 실시간으로 동작하는 모듈로 가정하고 작성된 프로그램에서 과거의 데이터를 기반으로 시뮬레이터를 구현합니다.

  7주차 - 

제가 회사에서 파이썬으로 주식데이터를 수집하고 분석해서 모의로 과거 데이터를 테스트 하는 등의 일을 하고 있는데요, 이런 일들은 굉장히 절차지향적이다보니 객체 지향적으로 프로그래밍 하는데 어렵더라구요( 제가 못해서 ). 저랑 비슷한 고민을 할 분들과 함께 스터디를 해보면 어떨까 합니다.
언어를 파이썬으로 쓰기 때문에 크게 2개로 진행이 됩니다. 
1. 책 https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=102151688&start=we 내용을 먼저 공부할 예정입니다. 공부 방식은 각자 챕터별로 내용을 정리하고 모여서 실습 내용을 따라하고 느낀 점을 공유하기. ( 4주 * 4단원 = 16~18단원 ) 4명 이상만 모이면, 1단원씩 해오기 입니다.
2. 몇 가지 데이터를 수집하고 모의로 주식을 거래하고 수익을 계산해보는 시뮬레이터를 리팩토링하기입니다. 같이 프로그래밍을 하면 좋겠지만, 그러기엔 한정된 시간에 많은 내용을 많이 작성하기 어려워서 이미 작성해놓은 코드를 리팩토링 하려고 합니다. 또한, 몇 가지 요구사항도 이미 여러번 필요했던 요구사항을 실제로 반영해보려 합니다.
2-1) finance.naver.com 등 웹에서 데이터를 수집하는 크롤러를 리팩토링 합니다.
2-2) 주식 혹은 ETF를 거래하는 로직을 리팩토링 합니다.
2-3) 사용자의 기능에 맞는 웹 페이지와 기능을 리팩토링 합니다. (차트 그리기 등..)
2-4) 과거 데이터에 기반해서 해당 로직을 평가하는 시뮬레이터를 리팩토링합니다.

스터디 설계 목적)
0 - 파이썬으로 객체지향적으로 프로그래밍을 공부해보자 ( Java 와는 또 다른 언어 설계로 새로이 공부해볼만한 영역이 많습니다. 신기한 접근법도 많구요 ) 주 언어가 파이썬이 아닌데, 파이썬을 좀 깊게 다뤄볼 기회가 아닐까요.
1 - GoF 의 Design Pattern 에 대해서 공부하면서 코드에 적용해보자.
2 - 간단한 프로그램에서 Enterprise Architecture Pattern 에서 다루었던 내용들을 적용할 수 있는 부분이 있을까를 같이 고민해봄
3 - 객체 지향 생활 체조 같은 내용들을 적용해보면서 코딩을 하거나 고칠 수 있을까?
4 - 금융권에서 다루는 데이터 방식이란 어떤 것일까? (저도 다 아는건 아니지만 제가 아는한 다 공유하려 합니다. 생각보다 별게 없습니다.. )" "두 가지 주제 중에 하나로 고민하려 했는데, 하나는 오픈소스 컨트리뷰트 도전하기 인데, 지난번에 스터디 리더를 하면서 뭔가 아주 명확하고 달성가능한 목표가 있어야 스터디를 운영하기 더 쉽다고 느껴서 목표를 굉장히 명확하게 잡으려고 노력했고, 오픈소스 컨트리뷰트 해보기 ( 번역이나 오탈자 말고 실제 버그 수정 )를 고민했으나, 당장 실력이 아직도 많이 부족한 것 같아 실력을 늘리는 스터디로 하려고 합니다. 
리팩토링할 코드는 전부 제가 짰던 막장 코드이니 예는 얼마나 코드를 못 짜나?를 구경하면서 힐링할 목적으로 참가하셔도 좋겠습니다 와주셔서 많은 훈수질 부탁드립니다....

1. 목표
> 전통적인 OOP 개발 패턴을 이해하고 함수형 패러다임을 적용하여 실무에 즉각 응용할 수 있도록 한다.
* 개발자간의 의사소통 원할
* 재사용 및 유지보수성 증가

2. 커리큘럼
1. 실무에서 사용되는 디자인 패턴 공유.
2. Lambda식과 functional interface
3~7. 디자인패턴 소개, 활용, 람다식 적용
3. GoF - Creational
> * Factory Method
> * Abstract Factory
> * Builder
> * Prototype
> * Singleton

4. GoF - Structural1
> * Adapter(class)
> * Adapter(Object)
> * Bridge
> * Composite

5. GoF - Structural2 
> * Decorator
> * Facade
> * Flyweight
> * Proxy
> * Visitor (behavioral)

6. GoF - Behavioral1
> * Interpreter
> * Template Method
> * Chain of Responsibility
> * Command
> * Iterator

7. GoF - Behavioral2
> * Mediator
> * Memento
> * Observer
> * State
> * Strategy

8. 자주 사용되는 디자인 패턴 실습

Elastic Search


...

Elastic Search & Kafka - 천정대, 이시훈, 강은지

elastic search

1주차 : 일래스틱 스택 소개, 시작하기
2주차 : 유사도 검색
3주차 : 일래스틱서치 분석
5주차 : 데이터 분석
6주차 : 로그스태시를 활용한 데이터 파이프라인 구축
7주차 : 키바나를 활용한 데이터 시각화
8주차 : 일래스틱 엑스팩
9주차 : 일래스틱 스택 운영 환경에 적용하기

...

공식 문서 : 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/

클라우드 네이티브 자바

클라우드가 기본인 시대에 필요한 스프링 기술들을 습득해보자!

클라우드 네이티브 자바 책을 기본으로 진도를 나가고 스터디원은 주차별 맡은 분량을 발표한다.

1 클라우드 네이티브 애플리케이션 & 스프링부트
2 12요소 애플리케이션 설정 & 테스트 & 애플리케이션 마이그레이션
3 REST API
4 라우팅 & 엣지서비스
5 데이터관리 & 메시징
6 배치 처리와 태스크 & 데이터 통합
7 관측가능한시스템
8 서비스 브로커 & 지속적 전달


spring과 함께 kafka 탐험하기

# 학습 목표
- Kafka 의 기본 구조 이해
- 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에 대해 이해하고 실무에서 구현 할 수 있는 방법에 대해 익혀보자.

...