페이지 트리
메타 데이터의 끝으로 건너뛰기
메타 데이터의 시작으로 이동

Java 성능

이 스터디를 해야하는 이유

  1. java 개발자라면 JVM 정도는 깊게 이해하는게 좋지 않을까?
  2. 저도 잘 모르지만 열심히해서 많은 지식을 공유할 수 있습니다. (특기가 열심)
  3. 회사일로 시간이 없어 스터디 준비를 못하셨다면, 걱정마세요. 제가하면 됩니다.
  4. JVM 지식으로 잘하는척 할 수 있다.
  5. 후회하지 않으실거에요!

주차 별 진행 내용

자바 성능 튜닝 참고, 이 스터디는 책 읽는 스터디가 아닙니다. 책은 각자 알아서 읽어오면 됩니다.

1주차 : 진행 내용 공유 및 변경
2~4 주차

  • JVM 이해
  • 툴을 이용해 JVM 알고리즘 별 그래프 확인
  • 성능을 고려한 코딩 (byte code 확인)

5~6주차 : Spring 환경에서 JVM과 성능
7~8주차 : 병목 | 대용량 예제를 만들고 튜닝, 코드 수정을 통해 병목 해결

  • 도구 사용 : jstat, pinpoint, ngrinder, aws, 등

9주차 : 회고

기대 효과

  1. JVM을 이해하고 튜닝 할 수 있다.
  2. JVM을 이해한 java 개발자가될 수 있다.
  3. 실무에서 병목 지점이 생겼을때 당황하지 않고 병목 지점을 찾아내고, 해결 할 수 있다.
  4. helloworld 말고 SLiPP wiki 문서에서 JVM 자료 검색

참고 문헌

* [자바 성능 튜닝] : (http://www.yes24.com/24/goods/24848833?scode=032&OzSrank=2)
* [Garbage Collection 튜닝] : (https://d2.naver.com/helloworld/37111)
* [Java 애플리케이션 분석을 위한 BTrace] : (https://d2.naver.com/helloworld/9042309)
* [대규모 분산 시스템 추적 플랫폼, Pinpoint] : (https://d2.naver.com/helloworld/1194202)
* [자바 애플리케이션 성능 튜닝의 도(道)] : (https://d2.naver.com/helloworld/184615)
* [Garbage Collection 모니터링 방법] : (https://d2.naver.com/helloworld/6043)
* [대용량 아키텍처 성능과 튜닝] : (https://d2.naver.com/news/3622708)
* [고맙다 JVM, 사과해라 JVM 크래시] : (https://d2.naver.com/helloworld/1134732)
* [JVM Internal] : (https://d2.naver.com/helloworld/1230)



JAVA 병렬프로그래밍

sync/async, blocking/non-blocking에 대한 학습을 하고 실습을 진행.

1~2주차 : sync/async 학습 및 실습
3~4주차 : blocking/non-blocking 학습 및 실습
5~6주차 : 병렬프로그래밍을 통한 서비스 구현 및 테스트
7~8주차 : 기타 프레임웍 분석(like netty)


GCP, 머신러닝

GCP 배워보자

Google Cloud Platform을 https://qwiklabs.com으로 공부합니다.
구글에서 운영하는 온라인 교육 입니다. 5~30분 의 코스가 있고, 이를 실제 실습하면 진행합니다. 
AWS가 딱 사용할 준비가 되어 있는 대신 한계를 강요받는다면, GCP는 아는 만큼 깊이 활용할 수 있습니다.

GCP 기반 ML 서비스 구축

Google Cloud Platform(이하 GCP)의 Machine Learning 지원환경을 공부하고 이를 통해 웹서비스 프로젝트를 구현해보기
진행 방식: 주차별 주제에 맞는 실습
(예상 토픽)
1. GCP환경 설치/설정 및 모듈 분석
2. GCP에 초간단 서비스(spring boot/python web service) deploy
3. Cloud ML engine 설정 및 사용법 학습
4. Cloud ML engine을 포함한 초간단 서비스 deploy해보기
5. ML API를 이용한 AI서비스 분석 및 초간단 서비스 구현
6. Tensorflow를 이용한 머신러닝 학습
7. Tensorflow 서비스 연동/deploy해보기
8. ML서비스 + Web 서비스 연동 해보기
(보충 주제)
1. 머신러닝
2. tensorflow
3. python

참고문헌: https://cloud.google.com/ml-engine/?hl=ko

텐서플로우 입문

1 주차. 머신러닝의 개념과 용어 
2 주차. Linear Regression 
3 주차. Logistic Classification 
4 주차. Softmax Regression 
5 주차. ML의 실용과 몇가지 팁 
6 주차. 딥러닝의 기본 개념과, 문제, 그리고 해결 
7 주차. Convolutional Neural Networks 
8 주차. Recurrent Neural Network

자기주도형 머신러닝 단기집중 과정

1주. 오리엔테이션
2주. ML소개 ~ TF 첫걸음
3주. 일반화 ~ 검증, 표현, 특성교차
4주. 정규화, 단순성, 로지스틱 회귀, 분류
5주. 정규화, 희소성, 신경망 소개, 신경망 학습
6주. 다중 클래스 신경망, 임베딩
7주, 8주. 미니프로젝트 실습



주식 자동 트레이딩

소개글은 슬라이드로 대신합니다 : http://bit.ly/2IL7lib

1) 주식 자동 트레이딩

다음의 책 내용을 주차별로 따라하면서 각자 겪은 장애 상황 공유합니다. 

https://wikidocs.net/book/110
01. 파이썬 시작하기 (1)
02. 파이썬 시작하기 (2)
03. 기본 개발 환경 구성 윈도우 및 증권사 최초 연결
04. Pandas를 이용한 데이터 분석 기초
05. Pandas와 zipline 을 이용한 백테스팅
06. matplotlib을 이용한 데이터 시각화
07. 주가 데이터 저장 및 실전 프로그램 개발
08. 실전 프로그램 개발 (2)
09. 회고

2) 은퇴 후에도 개발을 계속 됩니다. (발제 주제를 → 주식자동트레이딩과 주제 합 )

  • 꼭 회사에서 주어질 만한 일들을 수행하는 것이 아니라, 각자가 필요한 것에 대한 프로그램 개발을 통하여, 힘든 일을 대신 하게 하거나 번거로운 일을 자동화 할 수 있는 일들을 살펴보고 실습해봅니다.
  • 주식을 자동거래 하거나, 원하는 상품의 쇼핑몰 최저가를 검색하여 순위를 보여주거나, 유명인의 블로그 자동 트래킹 하거나, 뉴스 중 놓치고 싶지 않은 주제를 자동으로 스크래핑 하여 스마트폰에 알림을 주는 등, 정보를 기반으로 수익을 낼 수 있는 아이디어를 토론하며 자바와 파이썬 등을 활용하여, 구현할 방법들을 연구, 실습 해 봅니다.

3) 머신러닝을 활용한 시계열 데이터(주가, 환율 등) 분석

1주차 - 개발 환경 세팅 및 기존 활용 샘플 실습

2주차 - 신경망 소개 (순환신경망 : LSTM, ARIMA ..)

3주차 - 설계 (입력데이터, 신경망, 결과데이터)

4~8주차 - 구현 

9주차 - 프로그램 시뮬레이션 및 회고

1차로 진행되었던 머신러닝 스터디를 좀 더 확장하여 실습을 통해 좀 더 구체화된 지식을 습득하기 위해 주제 제안



봇 서비스 만들기

인공지능 시대에 맞춰 봇 서비스도 메인 스트림으로 들어 왔습니다.
거기에 맞춰 미리 대비하는 것이 좋을 것 같아 본 스터디를 생각하게 되었습니다.

스터디는 아래 링크의 책을 중심으로 진행합니다.

봇 설계는 이렇게 한다

  • 페이스북 메신저부터 킥, 슬랙봇, 구글 어시스턴트, 아마존 알렉사 그리고 이메일 봇에 이르는 새로운 대화형 앱이 소프트웨어와 인터랙션하는 방법에 혁명을 일으키고 있습니다. 이 실용 가이드는 그 대상이 새로운 소비자용 서비스인지 기업용 효율성 제품인지에 상관없이 사람들의 생산성을 높이는, 훌륭한 대화형 경험을 가진 유익한 봇을 기획하고 만드는 방법을 보여 줍니다.

다만 책은 개발 서적이 아니고 개념과 기획 서적에 가까우므로 페이스북 메신저 봇, 슬랙 봇을 스프링을 기반으로 개발해 봅니다. (카카오 봇, 라인 봇도 가능합니다.)

  • 1주차 : 봇이란 무엇인가?
    봇이란 무엇인가?, 봇의 유형, 주요 플랫폼, 주요 사용 사례, ...
  • 2주차 : 기획 프로세스
    수익화, 기획 프로세스 개요, 사용 사례 정의 및 탐구, 대화 스크립트 작성하기, 기획과 테스트, ...
  • 3주차 : Develop with Spring Boot
    스프링프레임워크로 카카오봇 만들기
    #Spring Boot #REST API
  • 4주차 : PaaS 서비스, Heroku 사용하기
    #IaaS #SaaS #PaaS #Heroku
  • 5주차 : Slack API
    #Slack
  • 6주차 : Facebook API
    #Facebook
  • 7주차 : Bot Analytics 도구 비교와 Chatbase 사용
    봇은 기존 웹, 앱과 달리 플랫폼을 통해 사용자와 간접적으로 연결됩니다.
    다른 환경이기 때문에 기존의 통계 분석 도구(Google Analytics 등)를 사용하기 어렵고, 이에 맞는 별도의 통계 분석 도구가 존재합니다.
    봇의 통계 분석에 최적화된 것이 Bot Analytics 도구입니다.
    #Chatbase #dashbot #botanalytics
  • 8주차 : 각자가 기획한 봇 서비스 공유

참고



Elastic Search

ElasticSearch

참고도서, 구글링을 통해서 얻은 정보를 잘 정리해서 발표!! 검색하면 90%

1주차 : ElasticSearch 소개 및 설치
2주차 : Elastic 제품군 알아보기 & 사용하기
3주차 : ElasticSearch 개념 소개 [ Index, Mapping, search... ]
4주차 : ElastisSearch Query 심화1
5주차 : ElastisSearch Query 심화2
6주차 : Log 데이터를 활용한 기본 아키텍처 구현 및 실습
7주차 : Log 데이터를 활용한 심화 아키텍처 구현 및 실습
8주차 : 팀원 사용기 + 활용방법2

여유시간이 있을경우 진행하면 좋은 내용들
- 클러스터, 보안, 레디스, 형태소분석

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


javascript 라이브러리 생태계

현재 javascript는 수많은 새로운 라이브러리들의 홍수에 빠져 있다고 봐도 과언이 아닙니다.
처음 javascript의 생태계에 뛰어들면 어떤 라이브러리를 배워서 사용해야 할지 감도 못잡는 경우가 많습니다.
이럴 경우 구글링을 통해 옥석을 가려내고 대충 어떠한 것들을 배워야 함을 머리로 알게 됩니다.
하지만 왜 이전의 방식이 죽어가고 현재의 방식이 살아남았는지는 알 수가 없습니다.
그렇기 때문에 우리는 도태된 이전의 방식을 한 번쯤 경험해 볼만한 가치가 있습니다.


  • javascript 기초 문법
  • CDN, 수동 다운로드를 이용한 라이브러리 사용 + script 태그 특성
  • javascript 모듈
    • 전역변수 문제, Prototype, IIFE 패턴
    • module 패턴, revealing module 패턴
    • pubsub 라이브러리
  • javascript 모듈 표준(CommonJS, AMD)
  • 모듈 관리, 빌드 툴 각각의 장단점
    • bower, bower-installer
    • grunt, gulp
    • requirejs, browserify
  • 현재 유행하는 것들에 대해
    • 언어(babel, typescript)
    • 프레임워크(react, angular, vue, ...)
    • 패키지 매니저(npm, yarn, ...)
    • 빌드 툴(webpack, rollup, ...)
    • 테스트(Jest, Mocha, ...)
  • Node.js 생태계 파악

javascript 다시한번 공부하기

1주차 [개요]
- 특징
- 테스트 프레임 워크, 디버깅 
2주차[함수형 언어 1]
- 함수형 언어 특징
- 예제(함수형 사용 방법, 컬렉션 다루기 등)
3주차[함수형 언어 2]
- 클로저
4주차[객체지향과 프로그래밍]
- 패턴 예제
5주차[스레드, 타이머, with 문]
- 스레드, 타이머 개념
- 비동기 테스팅
- With 문
6주차[DOM다루기, 이벤트 처리하기]
7주차[디자인 패턴]
8주차[예제]


코틀린

코틀린으로 안드로이드 어플 개발하기

코틀린을 이용하여 간단한 메모장이나 일정관리 안드로이드 어플을 만들어봅시다 :-)

kotlin을 활용해 웹 백엔드 구현부터 모바일 앱 구현까지 경험한다.

1주차 - 안드로이드 개발 환경 구축 및 초간단 앱 만들기
2주차 - 초간단 앱 추가 구현, 앱 장터, Play 스토어에 앱 등록하기
3주차 - todo 앱 구현 - 레이아웃과 기본 위젯 사용하기
4주차 - todo 앱 구현 - 위젯과 이벤트 활용하기
5주차 - todo 백엔드 api 서버 구현
6주차 - todo 앱 구현 - 네트워킹
7주차 - tdd로 안드로이드 앱 구현
8주차 - rxjava로 안드로이드 앱 구현

앱/서버 애플리케이션 만들어보기

코틀린 더 깊게 파보기, 코틀린 앱이 시작이라던데..

1. 코틀린 복습 - 컬렉션, 확장등.
2. 안드로이드 - 앱 레이아웃 / 컴포넌트
3. 안드로이드 - 앱 리스트,본문 구현.
4. 서버 - 스프링 부트 환경구성 / 시큐리티 + JWT 로그인
5. 서버/안드로이드 - 앱에서 로그인, API 구성(Swagger)
6. 서버/안드로이드 - 파일 업로드
7. 서버/안드로이드 - 앱과 서버간 데이터 포맷에 대한 처리.

기본적인 플랫폼 언어는 코틀린으로 정하며, 서버는 자바와 코틀린을 결합하여 작성할 수 있다.

코틀린을 활용한 서비스 오픈

1학기에 습득한 코틀린을 활용하여 서비스를 오픈한다
1주차: 방향/설계/R&R
2주차: 개발 플랫폼 및 Git 공규
3주차: 개발/TDD/배포
4주차: 개발/TDD/배포
5주차: 개발/TDD/배포
6주차: 서비스 등록 및 회고
7주차: 개선점및 향후 과제논의



WebRTC가 뭐길래

1. webrtc 란?
2. 오픈 소스 리뷰 (https://github.com/webrtc/apprtc)
3. 1:1 or 1:n or n:n 영상 채팅 구현

웹 개발로 진입할 수 있는 영역이 점차 넓어지고 있는 것같습니다. webrtc를 이용하여 미디어 그.사.세 들여다 볼까요?



카프카, 데이터 플랫폼의 최강자 책읽기및 실습

1장 카프카란 무엇인가
2장 카프카와 주키퍼 설치
3장 카프카 디자인
4장 카프카 프로듀서
5장 카프카 컨슈머
6장 카프카 운영 가이드
7장 카프카를 활용한 데이터 파이프라인 구축
8장 카프카 스트림즈 API
9장 카프카 SQL을 이용한 스트리밍 처리
10장 그 밖의 클라우드 기반 메시징 서비스

11장: OT 후 향후 실습 서비스를 구현 해본다.


AWS 를 활용한 serverless 서비스 구축하기

AWS 가입 및 가장 허들이 높다 판단되는 IAM 계정 및 VPC 설정에 초반진행, 이후 api gate way, aws lambda, dynamodb 등 을 활용하여 서비스 점진적 구축, 최종 목적지는 TODO list 정도를 목표로.


상황에 따라 각 개인은 AWS 사용료가 지불될 수 있으며, 스터디 참여자는 가급적 VPC 및 각 AWS 서비스에 대한 이해도가 잡혀있거나,미리 개념적 이해를 선행하고 참여해주시길 부탁드림.

진행 방식은 실습 위주가 될 것이며 스터디 목표 허들 자체가 낮은 관계로 상황에 따라 다른 AWS 서비스에 대해 대체할 수 있는게 뭔지, 혹은 보안이슈나 서비스레벨에서 각 AWS 서비스가 가질 수 있는 이슈 등을 다뤄볼까 생각중.


알고리즘, 인터뷰

알고리즘(게일 라크만 맥도웰)과 실전면접

스터디 개요
  항상 준비 될 수 있도록..! 코팅 인터뷰와 실전 면접을 준비하는 스터디입니다.
  책의 앞부분은 자유롭게 읽고 면접문제가 스터디의 주된 내용입니다.
  문제를 계속 풀면 지겨울 수가 있어서 중간중간 면접을 진행하여,
  본인의 이력서도 다듬는 계기를 갖습니다.
스터디 방식
  - 발표자가 책에 나온 문제를 골라 다 같이 30분정도 문제를 푼다.
    (미리 문제를 풀어왔다면 다른 문제를 풀어도 된다. 자유롭게 30분이란 시간을 문제 푸는데 사용)
  - 30분은 문제 해설 및 다른 사람들이 어떻게 풀었는지나 질의 응답
  - 이 같은 방식으로 스터디 한주차에 2개씩 진행
  - 스터디의 중간에 본인의 이력서로 실전 면접을 진행
  - 본인의 이력서에 대해 스터디원의 첨삭
  - 커리어 관리에 대한 토의

1주차
  - 배열 문자열
  - 연결 리스트
2주차
  - 스택
  - 큐
3주차
  - 1:1 실전 면접 및 토의
4주차
  - 수학과 확률/객체지향 설계
  - 재귀와 동적 프로그래밍/정렬과 탐색
5주차
  - 규모확장성과 메모리 제한
  - 테스팅
6주차
  - 1:다 실전 면접 및 토의
7주차
  - Java
  - 데이터 베이스
  - 쓰레드 락
8주차
  - 이력서 공유/첨삭
9주차
  - 커리어 관리에 대한 토의 및 총평




일렉트론 프레임워크

HTML, CSS, 자바스크립트를 사용해 크로스 플랫폼 데스크탑 애플리케이션을 만들기 위해 GitHub에서 개발한 오픈 소스 라이브러리입니다. Electron을 이용해 작성한 앱은 Mac, Windows, 리눅스용으로 패키지할 수 있습니다.

1주차: Electron 에 대하여
2주차: Electron Application Architecture
3주차: 메인 프로세스 디버깅하기
4주차: 첫 번째 Electron 앱 만들기
5주차: 응용 프로그램 패키징
6주차: Electron 버전 관리
7주차: 애플리케이션 배포
8주차: 메인 프로세스 디버깅하기
9주차: 보안, 기본 기능, 그리고 당신의 책임


실무에서 써보자! 스프링 5.0

- 책 링크 : http://www.yes24.com/24/goods/58255540
1회 : 마이크로서비스 관련 아키텍처 스타일 및 사례
2회. 스프링 부트로 만드는 마이크로서비스
3회. 마이크로서비스 개념 적용 및 마이크로서비스 역량 모델
4회. 마이크로서비스의 진화: 사례 연구
5회. 스프링 클라우드 컴포넌트를 활용한 마이크로서비스 확장
6회. 마이크로서비스 로깅 및 모니터링
7회. 도커 컨테이너와 마이크로서비스
8회. 메소스와 마라톤을 이용한 도커화된 마이크로서비스 확장
9회. 마이크로서비스 개발 라이프사이클


팀을 위한 Git

지금까지 대부분 늘 쓰는, 꼭 필요한 몇가지 Git 명령어만 사용해왔다.
이제는 상황에 맞는, 조직에 맞는 올바른 Git 사용법을 익혀보자.

팀을 위한 Git 을 교재로 이론 + 실습 으로 진행.(http://www.aladin.co.kr/shop/wproduct.aspx?ItemId=90908276)


CQRS Journey

CQRS Journey 를 한 챕터씩 미리 읽고 와서 내용 공유하고 토론하기.
영문입니다. 미리미리 읽어와야만 합니다.

A CQRS journey
Chapter 1, "Our Domain: The Contoso Conference Management System," introduces our sample application and our team of (fictional) experts.
Chapter 2, "Decomposing the Domain," provides a high-level view of the sample application and describes the bounded contexts that make up the application.
Chapter 3, "Orders and Registrations Bounded Context," introduces our first bounded context, explores some CQRS concepts, and describes some elements of our infrastructure.
Chapter 4, "Extending and Enhancing the Orders and Registrations Bounded Context," describes adding new features to the bounded context and discusses our testing approach.
Chapter 5, "Preparing for the V1 Release," describes adding two new bounded contexts and handling integration issues between them, and introduces our event-sourcing implementation. This is our first pseudo-production release.
Chapter 6, "Versioning Our System," discusses how to version the system and handle upgrades with minimal down time.
Chapter 7, "Adding Resiliency and Optimizing Performance," describes what we did to make the system more resilient to failure scenarios and how we optimized the performance of the system. This was the last release of the system in our journey.
Chapter 8, "Lessons Learned," collects the key lessons we learned from our journey and suggests how you might continue the journey.


블록체인

블록체인에 대해 공부하고 간단한 dApp을 만들어 보는 실습
시중에 나온 책 중 하나 선정해서 따라해 보거나 온라인에서 자료를 찾아 스터디 하면서 블록체인 기술에 대해 공부하고 dApp을 구현해보는 것이 목적


개발자의 기억법

1주차. 개발자의 생산성 향상방법 리뷰

2주차. 생산성 향상 도구 리뷰
- 베스트 프렉티스 코드 탐색(메일링리스트, RSS)
- 문제해결 과정에 대한 기록
- boilerplate, snippet 소스코드 관리
- 치트시트, 다이어그램 이미지 관리
- 이슈트래커와 버전관리도구 콜라보레이션(aka. 이슈해결 스토리)

3주차. 단기, 중기, 장기 기억해아할 거리에 대한 스트레스 줄이는 법
- TODO(GTD기반), Reminder, Calendar, Clipboard, Password

4주차. 지루하지 않게 회의를 이끌고 사용자가 원하는 핵심가치 찾기
- 마인드맵으로 도출하는 핵심 가치점

5주차 ~ 8주차
- TBD


클린 코드

더 나은 코드를 짜기 싫어하는 개발자는 없을 겁니다. 하지만 좋은 코드가 무엇인지 몰라서 아니면 개발일정에 쫓겨서 좋은 코드를 고민하기 전에 습관적으로만 코드를 짜는 경우가 생깁니다. 어떻게 하면 현업에서도 좋은 코드를 만들 수 있을까요? 이번 스터디를 통해 경험을 나누면서 좋은 구조를 만들고 좋은 코드를 탐구하는 방법을 함께 찾아봅니다.

OOP 법칙에 기반한 클린코드 작성, 클린 소프트웨어가 무엇인지에 대해 이야기하고, 실제 리팩토링 실습을 진행합니다. 스터디 자료 외에 리팩토링한 경험과 노하우를 같이 이야기해봅니다.

  • 목표 
    • 건강한 생활! 건강한 코드!
    • 실제 생활에서 포기하지 않고, 스트레스 덜 받고 적용시킬 수 있는 방법을 탐구하는 것을 중심으로 둡니다.


  • 진행 : 실습 + 매 시간 간단한 회고
    • 1주차 - 무엇이 좋은 코드일까? 각자 자료 정리해와서 토의
    • 2주차 - OOP란 무엇일까? OOP 법칙에 기반한 설계 패턴
    • 3주차 - 코드 속의 나쁜 냄새 찾기 - 실제 코드에서 찾기
    • 4주차 - 좋은 코드를 어떻게 유지할 것인가?
    • 5주차 - 실용적인 팁 - 메소드 정리, 개체간의 기능 이동
    • 6주차 - 실용적인 팁 - 데이터 구성, 조건문의 단순화
    • 7주차 - 실용적인 팁 - 대규모 리팩토링
    • 8주차 - 리팩토링, 재사용, 그리고 현실
    • 9주차 - 스터디 회고

(위 스터디 제안은 아래 세 가지 주제를 병합하여 작성하였습니다)


OOP 법칙에 기반한 클린코드 작성 그리고 리팩토링

OOP 법칙에 기반한 클린코드 작성 그리고 리팩토링

1. 좋은 코드란 무엇일까 토론하기.

2. OOP란 무엇일까?

3. OOP 법칙에 기반한 설계 패턴(1) : 단일 책임 원칙, 개방 폐쇄 원칙

4. OOP 법칙에 기반한 설계 패턴(2) : 리스코프 치환 원칙, 의존 관계 역전 원칙

5. OOP 법칙에 기반한 설계 패턴(3) : 인터페이스 분리 원칙

6. 마틴 파울러가 쓴 Refactoring책의 예제 소스를 활용하여 리팩토링 코딩(1) : 코딩하기

7. 마틴 파울러와 켄트 벡이 쓴 Refactoring책의 예제 소스를 활용하여 리팩토링 코딩(2) : 토론하기

8. 뒤돌아보기

더 나은 코드를 짜기 싫어하는 개발자는 없다

더 나은 코드를 짜기 싫어하는 개발자는 없을 겁니다. 하지만 좋은 코드가 무엇인지 몰라서 아니면 개발일정에 쫓겨서 좋은 코드를 고민하기 전에 습관적으로만 코드를 짜는 경우가 생깁니다.
어떻게 하면 현업에서도 좋은 코드를 만들 수 있을까요? 이번 스터디를 통해 경험을 나누면서 좋은 구조를 만들고 좋은 코드를 탐구하는 방법을 함께 찾아보고 싶습니다. 스터디자료를 보고 좋은 코드가 무엇인지 살펴보고 실제 코드를 가지고 리팩토링을 해봅니다.
- 실습 스터디와 함께 매 시간 간단한 회고를 통해 리팩토링한 경험과 노하우를 같이 이야기해봅니다.
- 굳이 자료의 모든 목차를 따라가지 않더라도 실제 생활에 스트레스 덜 받고 적응할 수 있는 방법을 탐구하는 것을 중심으로 둡니다.
- 스터디 자료 : 실제 작성코드, 리팩토링 관련 도서 (리팩토링 - 마틴파울러 저,...)

1주차 - 무엇이 좋은 코드일까? 각자 자료 정리해와서 토의
2주차 - 코드 속의 나쁜 냄새 찾기 - 실제 코드에서 찾기
3주차 - 좋은 코드를 어떻게 유지할 것인가? (방법찾아봅시다 - 테스트 코드짜기? 객체지향 생활 체조)
4주차 - 실용적인 팁 - 메소드 정리, 개체간의 기능 이동
5주차 - 실용적인 팁 - 데이터 구성, 조건문의 단순화
6주차 - 실용적인 팁 - 대규모 리팩토링
7주차 - 리팩토링, 재사용, 그리고 현실
8주차 - 스터디 회고

'클린 소프트웨어' 함께 읽기

절판된 '소프트웨어 개발의 지혜' 가 복간되었습니다. 복간 되고 바로 구매하였지만.. 역시 너무 두껍습니다ㅠ 함께 읽으면 올해안에 완독은 하겠죠?! 
진행 방식은 1시간 분량만큼 각자 읽고 리뷰어를 정해 리뷰하고 토론합니다.
1주 : part1 애자일 개발 (ch1 ~ ch6)
2주 : part2 애자일 설계 (ch7 ~ ch12)
3주 : part3 급여관리 사례 연구 (ch13 ~ ch17)
4주 : part3 급여관리 사례 연구 (ch18 ~ ch19)
5주 : part4 급여관리 시스템 패키징 (ch20 ~ ch22)
6주 : part5 기상 관측기 사례 연구 (ch23 ~ ch26)
7주 : part5 기상 관측기 사례 연구 (ch27)
8주 : part6 ETS 사례 연구 (ch28 ~ ch30)

  • 레이블 없음