SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
봄 맞이 준비 운동
박성철
스프링 프레임워크 코어
발표자 소개
• 개발팀 팀장
• 코더 since 1982
• 많이 망해봤어요.
• 취미: 문제 해결법 찾기
生卽苦
프레임워크가 뭐지?
프레임워크는…
복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구
조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라
고도 한다. 이렇게 매우 폭넓은 정의는 이 용어를 버즈워드
(buzzword)로서, 특히 소프트웨어 환경에서 사용할 수 있게
만들어 준다.

- 한글 위키-
뭐라는거냐?
Framework is…
an abstraction in which software providing generic
functionality can be selectively changed by
additional user-written code, thus providing
application-specific software.
• 제어 역전(IoC; inversion of control)
• 기본 행위
• 확장 가능
• 프레임워크 코드 수정 불가(바이너리 재사용)
스프링 프레임워크
스프링 언프레임워크
Java EE w/o EJB
범위가 무지 넓다는 뜻…
스프링 프레임워크는…
스프링 프레임워크는 자바 플렛폼으로서 자바 애플리케
이션을 개발하는데 필요한 하부 구조를 포괄적으로 제공
합니다. 스프링이 하부 구조를 처리하므로 개발자는 애플
리케이션 개발에 집중할 수 있습니다.
Spring Framework is a Java platform that provides
comprehensive infrastructure support for developing Java
applications. Spring handles the infrastructure so you can focus
on your application.
순수 객체

(POJO)
의존
관계
주입

DependencyInjection
관점
중심
프로그래밍

AspectOrientated
Program
m
ing
이식 가능한 서비스 추상화

Portable Service Abstraction
봄(스프링)의 대삼각형
…… 그래서 뭐?
과거 떠나는 시간 여행
https://flic.kr/p/9waYuP
복잡도 문제
소프트웨어 위기
소프트웨어 위기의 주요한 위기는 컴퓨터 성능이 몇 수십 배나 더 강력해졌기 때
문입니다! 심하게 말하면, 컴퓨터가 없었을 때는 프로그래밍에는 전혀 문제가 없
었습니다. 느린 컴퓨터 몇 개 뿐이었을 때는 프로그래밍이 조금 문제가 되었고,
이제는 거대한 컴퓨터에 프로그래밍도 따라서 거대한 문제가 되었습니다.
- 에츠허르 데이크스트라 @ 1972 ACM 튜링상 수상 연설
F. L. 바우어, 1968, 나토 SW 공학 학회
http://commons.wikimedia.org/wiki/File:Rusty_tools.JPG
복잡도를 다루는 다양한 도구
시뮬라 67
객체 & 코루틴
범용 언어 = 알고리듬 구현 + 분해
저결합도 & 고응집도
원칙 #1
역할
기능
기능 A 기능 B 기능 C 기능 D
UI/표현
애플리케이션
도메인
통합
인프라
멀티 레이어
객체로 SW를 만들어 보자
Acme Processor
UI Logic DAO
(Data Access Object)
AcmeUI
Acme Processor 완성
UI Logic DAO
AcmeLogic AcmeDAO
AcmeUI
Acme Processor + 개발용
UI Logic DAO
AcmeLogic
RealAcmeDAO
DevAcmeDAO
AcmeUI
Acme Processor + 테스트
UI Logic DAO
AcmeLogic
RealAcmeDAO
DevAcmeDAO
TestAcmeDAO
AcmeUI
Acme Processor +UI 테스트
UI Logic DAO
RealAcmeLogic
RealAcmeDAO
DevAcmeDAO
TestAcmeDAO
FakeAcmeLogic
AcmeUI
Acme Processor + 테스트 자동화
UI Logic DAO
RealAcmeLogic
RealAcmeDAO
DevAcmeDAO
TestAcmeDAO
FakeAcmeLogic
AcmeTestCase
AcmeUI
Acme Processor + 빅데이터
UI Logic DAO
RealAcmeLogic
RealAcmeDAO
DevAcmeDAO
TestAcmeDAO
FakeAcmeLogic
AcmeTestCase
RealBigAcmeDAO
스몰톡 - 80
최초의 OOP, 메시지 전달
…해줘
응. 여기~
그건 ~
…는 뭐니?
A B
대면 대화 X
지인과의 전화 통화 X
맥도날드에서 주문하기 O
마법사
피예로
글린다
엘파바네사로즈
딜라몬드
김선영
박혜나
김소현
김보영
이지훈
조상웅
남경주
이상준
마법사피예로글린다엘파바
역할 배우
객체
메시지 (역할) 로직
인터페이스
개방-폐쇄 원칙

(Open-Closed Principle)
원칙 #2
AcmeUI
Acme Processor
Logic DAO
AcmeLogic AcmeDAO
인터페이스
클래스
의존관계 역전 원칙

(Dependency Inversion Principle)
원칙 #3
AcmeUI
Acme Processor + 개발용
Logic DAO
AcmeLogic DevAcmeDAO
AcmeUI
Acme Processor +UI 테스트
Logic DAO
FakeAcmeLogic X
배역 구성
Logic DAO
RealAcmeLogic
RealAcmeDAO
상용
DevAcmeDAO
개발
TestAcmeDAO
테스트
FakeAcmeLogic
UI테스트
AcmeTestCase
테스트
AcmeUI
RealBigAcmeDAO
빅데이터
다시 미래로 돌아 옵시다
순수 객체

(POJO)
의존
관계
주입

DependencyInjection
관점
중심
프로그래밍

AspectOrientated
Program
m
ing
이식 가능한 서비스 추상화

Portable Service Abstraction
봄(스프링)의 대삼각형
육각형 아키텍처
인프라의 침투
유지 보수

어려움
테스트
장애
개발 속도
저하
결함 급증
비 침투적 스프링
POJO

(순수 객체)
차단
순수 객체

(POJO)
의존
관계
주입

DependencyInjection
관점
중심
프로그래밍

AspectOrientated
Program
m
ing
이식 가능한 서비스 추상화

Portable Service Abstraction
봄(스프링)의 대삼각형
애플리케이션 배역 구성
스프링
배역 구성
객체
객체 객체
객체
애플리케이션
구성 메타데이터

(Configuration Metadata)
스프링 컨테이너 

(Spring Container)
빈(Bean)
스프링
컨테이너
애플리케이션
빈(Bean)
구성
메타데이터
생성
빈(Bean)

• 스프링이 관리하는 컴포넌트성 객체
• POJO (인프라에 오염되지 않은 객체)
구성 메타 데이터(빈 정의)

• 애플리케이션 구성 정보(의존 관계 포함)
• 다양한 메타 데이터 표현 방법: XML, 자바, 그루비 등
• Java 어노테이션, 어노테이션을 사용한 메타 데이터 표시
• Java 기반 구성
• 자바를 빈 설정용 DSL로 사용
• 스프링 3.0 이상, JavaConfig 프로젝트가 통합
• @Configuration, @Bean, @Import, @DependsOn
• XML 없이 애플리케이션 구성 가능
• Java 어노테이션 방식의 완성
• 그루비 빈 구성: 4.0 이상
스프링
컨테이너
애플리케이션
빈(Bean)
구성
메타데이터
생성
컨테이너

• IoC 컨테이너
• 빈 생명 주기 관리 (생성, 초기화, 소멸)
• 빈 의존 관계 설정 (의존관계 주입)
• 애플리케이션 구성(configuration)
◦값 주입
◦후처리
◦AOP
IoC vs DI

• DI = IoC의 한 형태
• DI = 비침투적
• 공장(Factory) 패턴, 전략 패턴
봄(스프링)의 대삼각형
순수 객체

(POJO)
의존
관계
주입

DependencyInjection
관점
중심
프로그래밍

AspectOrientated
Program
m
ing
이식 가능한 서비스 추상화

Portable Service Abstraction
OOP의 한계
• 횡단 관심사 문제: 상속 구조로 해결할 수 없는 중복
• 보안, 로깅, 트랜잭션 관리, 캐시, 에러 처리, 모니터링
• OOP로 해결하기엔 비용 급증
• 횡단 관심사의 관심사 분리 기술
• 인프라로부터 POJO를 보호
• 동적 프록시 기술 사용
AOP
봄(스프링)의 대삼각형
순수 객체

(POJO)
의존
관계
주입

DependencyInjection
관점
중심
프로그래밍

AspectOrientated
Program
m
ing
이식 가능한 서비스 추상화

Portable Service Abstraction
스프링 모듈
스프링의 특징
• 컴포넌트 기반 애플리케이션 구성/생애 관리
• 관심사 분리: 비침투적 기술, POJO, AOP
• Effective Java
• 선언적 트랜잭션
• 테스트 용이성
• 엔터프라이즈 기술 통합 & 추상화
• 메타프로그래밍
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동

Mais conteúdo relacionado

Mais procurados

Programming skills 1부
Programming skills 1부Programming skills 1부
Programming skills 1부JiHyung Lee
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규ChangKyu Song
 
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드중선 곽
 
Hot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With JavaHot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With JavaDexter Jung
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기NAVER D2
 
Spring batch와 함께 하는 TDD
Spring batch와 함께 하는 TDDSpring batch와 함께 하는 TDD
Spring batch와 함께 하는 TDDSanghyuk Jung
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용중선 곽
 
간단하게 알아보는 좋은 코드 서영훈
간단하게 알아보는 좋은 코드   서영훈간단하게 알아보는 좋은 코드   서영훈
간단하게 알아보는 좋은 코드 서영훈Seo YoungHoon
 
Oop design principle
Oop design principleOop design principle
Oop design principleRyan Park
 
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsRyan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsSuwon Chae
 
Oop design principle SOLID
Oop design principle SOLIDOop design principle SOLID
Oop design principle SOLIDRyan Park
 
[devil's camp] - Crack me (김민재)
[devil's camp] - Crack me (김민재)[devil's camp] - Crack me (김민재)
[devil's camp] - Crack me (김민재)NAVER D2
 
Tdd live spring camp 2013
Tdd live spring camp 2013Tdd live spring camp 2013
Tdd live spring camp 2013beom kyun choi
 
읽기 좋은 코드가 좋은코드다
읽기 좋은 코드가 좋은코드다읽기 좋은 코드가 좋은코드다
읽기 좋은 코드가 좋은코드다wonmin lee
 
TDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: RefactoringTDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: RefactoringSuwon Chae
 
자바_웹_개발자를_위한_c#_핵심_기능
자바_웹_개발자를_위한_c#_핵심_기능자바_웹_개발자를_위한_c#_핵심_기능
자바_웹_개발자를_위한_c#_핵심_기능Dexter Jung
 
프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정중선 곽
 
인생은 짧아요, 엑셀 대신 파이썬
인생은 짧아요, 엑셀 대신 파이썬인생은 짧아요, 엑셀 대신 파이썬
인생은 짧아요, 엑셀 대신 파이썬Seung-June Lee
 
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)Dong Chan Shin
 

Mais procurados (20)

Programming skills 1부
Programming skills 1부Programming skills 1부
Programming skills 1부
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
 
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드
 
Hot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With JavaHot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With Java
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
 
Spring batch와 함께 하는 TDD
Spring batch와 함께 하는 TDDSpring batch와 함께 하는 TDD
Spring batch와 함께 하는 TDD
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
 
간단하게 알아보는 좋은 코드 서영훈
간단하게 알아보는 좋은 코드   서영훈간단하게 알아보는 좋은 코드   서영훈
간단하게 알아보는 좋은 코드 서영훈
 
Oop design principle
Oop design principleOop design principle
Oop design principle
 
Java 기초
Java 기초Java 기초
Java 기초
 
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsRyan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
 
Oop design principle SOLID
Oop design principle SOLIDOop design principle SOLID
Oop design principle SOLID
 
[devil's camp] - Crack me (김민재)
[devil's camp] - Crack me (김민재)[devil's camp] - Crack me (김민재)
[devil's camp] - Crack me (김민재)
 
Tdd live spring camp 2013
Tdd live spring camp 2013Tdd live spring camp 2013
Tdd live spring camp 2013
 
읽기 좋은 코드가 좋은코드다
읽기 좋은 코드가 좋은코드다읽기 좋은 코드가 좋은코드다
읽기 좋은 코드가 좋은코드다
 
TDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: RefactoringTDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: Refactoring
 
자바_웹_개발자를_위한_c#_핵심_기능
자바_웹_개발자를_위한_c#_핵심_기능자바_웹_개발자를_위한_c#_핵심_기능
자바_웹_개발자를_위한_c#_핵심_기능
 
프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정
 
인생은 짧아요, 엑셀 대신 파이썬
인생은 짧아요, 엑셀 대신 파이썬인생은 짧아요, 엑셀 대신 파이썬
인생은 짧아요, 엑셀 대신 파이썬
 
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
 

Semelhante a 스프링 코어 강의 1부 - 봄 맞이 준비 운동

안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계Leonardo YongUk Kim
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)중선 곽
 
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료beom kyun choi
 
아해팀 스터디 Orm은 어떻게 객체를 매핑할까
아해팀 스터디 Orm은 어떻게 객체를 매핑할까아해팀 스터디 Orm은 어떻게 객체를 매핑할까
아해팀 스터디 Orm은 어떻게 객체를 매핑할까Sunghyun Roh
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨KwangSeob Jeong
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXpressEngine
 
스프링 스터디 1장
스프링 스터디 1장스프링 스터디 1장
스프링 스터디 1장Seongchan Kang
 
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들Kivol
 
카사 공개세미나1회 W.E.L.C.
카사 공개세미나1회  W.E.L.C.카사 공개세미나1회  W.E.L.C.
카사 공개세미나1회 W.E.L.C.Ryan Park
 
How to use the Ruby programing language
How to use the Ruby programing languageHow to use the Ruby programing language
How to use the Ruby programing languageJaeYeoul Ahn
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019min woog kim
 
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?williciousk
 
올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발cho hyun jong
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래cho hyun jong
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰Jubok Kim
 

Semelhante a 스프링 코어 강의 1부 - 봄 맞이 준비 운동 (20)

안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
 
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
 
ecdevday4
ecdevday4ecdevday4
ecdevday4
 
아해팀 스터디 Orm은 어떻게 객체를 매핑할까
아해팀 스터디 Orm은 어떻게 객체를 매핑할까아해팀 스터디 Orm은 어떻게 객체를 매핑할까
아해팀 스터디 Orm은 어떻게 객체를 매핑할까
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
스프링 스터디 1장
스프링 스터디 1장스프링 스터디 1장
스프링 스터디 1장
 
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
 
카사 공개세미나1회 W.E.L.C.
카사 공개세미나1회  W.E.L.C.카사 공개세미나1회  W.E.L.C.
카사 공개세미나1회 W.E.L.C.
 
How to use the Ruby programing language
How to use the Ruby programing languageHow to use the Ruby programing language
How to use the Ruby programing language
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
 
java_1장.pptx
java_1장.pptxjava_1장.pptx
java_1장.pptx
 
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
 
올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
 
java_1장
java_1장java_1장
java_1장
 
java_1장.pptx
java_1장.pptxjava_1장.pptx
java_1장.pptx
 

Mais de Sungchul Park

애자일 안한 이야기
애자일 안한 이야기애자일 안한 이야기
애자일 안한 이야기Sungchul Park
 
자바 테스트 자동화
자바 테스트 자동화자바 테스트 자동화
자바 테스트 자동화Sungchul Park
 
변경에 강한 애플리케이션, 유기적 애플리케이션
변경에 강한 애플리케이션, 유기적 애플리케이션변경에 강한 애플리케이션, 유기적 애플리케이션
변경에 강한 애플리케이션, 유기적 애플리케이션Sungchul Park
 
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신Sungchul Park
 
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처 스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처 Sungchul Park
 
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용Sungchul Park
 
자바8 람다 나머지 공개
자바8 람다 나머지 공개자바8 람다 나머지 공개
자바8 람다 나머지 공개Sungchul Park
 
java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰Sungchul Park
 
Open Source가 바꾼 자바
Open Source가 바꾼 자바Open Source가 바꾼 자바
Open Source가 바꾼 자바Sungchul Park
 

Mais de Sungchul Park (13)

애자일 안한 이야기
애자일 안한 이야기애자일 안한 이야기
애자일 안한 이야기
 
Java.next
Java.nextJava.next
Java.next
 
자바 테스트 자동화
자바 테스트 자동화자바 테스트 자동화
자바 테스트 자동화
 
변경에 강한 애플리케이션, 유기적 애플리케이션
변경에 강한 애플리케이션, 유기적 애플리케이션변경에 강한 애플리케이션, 유기적 애플리케이션
변경에 강한 애플리케이션, 유기적 애플리케이션
 
Geeks at SK Planet
Geeks at SK PlanetGeeks at SK Planet
Geeks at SK Planet
 
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
 
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처 스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
 
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
 
자바8 람다 나머지 공개
자바8 람다 나머지 공개자바8 람다 나머지 공개
자바8 람다 나머지 공개
 
java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰
 
Open Source가 바꾼 자바
Open Source가 바꾼 자바Open Source가 바꾼 자바
Open Source가 바꾼 자바
 
Work With Engineer
Work With EngineerWork With Engineer
Work With Engineer
 
DDD 산책
DDD 산책DDD 산책
DDD 산책
 

스프링 코어 강의 1부 - 봄 맞이 준비 운동