SlideShare une entreprise Scribd logo
1  sur  59
1
자바 웹 개발자를 위한
C# 핵심 기능
중앙일보
JunSeok.Jung
2
정준석
korcosin@gmail.com
2011.01 ~ 2011.10 : LG전자 R&D연구소 (아주 잠깐)
2011.11 ~ 2015.05 : WISEnut( Search-Tech 팀 )
2015.05 ~ 2016.07 : 에듀윌 ( 개발팀 )
2016.07 ~ ING : 중앙일보 ( 기술개발팀 )
- Crawling Technical Specialist
- Web Developer
- Polyglot Programmer… 가 되고 싶은…
- .NET과 JAVA 이중 스파이
INDEX
3
1. Intro
2. 이것만 알면 나도 .NET 개발자
3. 고급 개발자가 되기 위한 LINQ
4. Expected to .NET Framework
5. Q&A
오늘 할 이야기
4
Intro
5
JAVA도 빡 샌데 왜 C#을 알아야 하는데?
Intro
6
지금은 Polyglot 시대
Intro
7
이 슬라이드를 보면 유익할 것 같은 대상자
- 신입 소프트웨어 공학도
또는
- 지금까지 개발 하면서 C#을 접해보지 못하신 분
(Java, Python, C++,등등… 개발자)
- 그 중에서도 웹 개발자
- 그 중에서도 이번에 ASP.NET으로 프로젝트를 해야 하는데, 공부하기 싫은 분
( 빠르게 핵심 기능만 써서 위기 상황을 넘어가실 분 )
즉, 이 강연은 C# Master분들이 들으시면 너무 싱거울 수 있습니다.
Intro
8
사실은…
그냥 전부 다~ ( C# Master님들 빼고 ^^ )
Intro
이 슬라이드를 보면 유익할 것 같은 대상자
9
이것만 알면 나도 .NET 개발자
10
namespace
using
Dictionary<Tkey, Tvalue>
DataTable
SqlConnection
SqlCommand
SqlDataReader
------------------------------
Repeater Control
ListView Control
이것만 알면 나도 .NET 개발자
11
namespace
using
Dictionary<Tkey, Tvalue>
DataTable
SqlConnection
SqlCommand
SqlDataReader
------------------------------
Repeater Control
ListView Control
이것만 알면 나도 .NET 개발자
12
1. Java의 package 개념
namespace
13
2. 기본적으로 namespace 이름을 나열한다.
namespace
14
3. namespace 영역 안에 다중 namespace를 나눌 수 있다.
namespace
15
4. namespace 영역 안에 Class를 만든다.
namespace
16
5. namespace 영역 안에 Interface를 만든다.
namespace
17
6. 이 밖에도 enum, delegate, struct 를 만들 수 있다.
namespace
18
namespace
using
Dictionary<Tkey, Tvalue>
DataTable
SqlConnection
SqlCommand
SqlDataReader
------------------------------
Repeater Control
ListView Control
이것만 알면 나도 .NET 개발자
19
1. Java의 import 기능
using
20
2. 사용자가 정의해 놓은 namespace를 참조 할 수 있다.
using
21
3. IDisposable 기능 ( Auto Close )
using
22
namespace
using
Dictionary<Tkey, Tvalue>
DataTable
SqlConnection
SqlCommand
SqlDataReader
------------------------------
Repeater Control
ListView Control
이것만 알면 나도 .NET 개발자
23
1. key-value Collection
Dictionary<Tkey, Tvalue>
24
namespace
using
Dictionary<Tkey, Tvalue>
DataTable
SqlConnection
SqlCommand
SqlDataReader
------------------------------
Repeater Control
ListView Control
이것만 알면 나도 .NET 개발자
25
1. Table 형태의 데이터 처리
DataTable
26
namespace
using
Dictionary<Tkey, Tvalue>
DataTable
SqlConnection
SqlCommand
SqlDataReader
------------------------------
Repeater Control
ListView Control
이것만 알면 나도 .NET 개발자
27
1. SQL Connection String을 설정 한 후에,
SqlConnection
28
2. Database Connection
SqlConnection
29
3. Run SQL ( CRUD )
SqlCommand
Select는 ExecuteReader()
Insert/Update/Delete는 ExecuteNonQuery()
30
4. Read Record ( One Row Scan )
SqlDataReader
31
5. 전체 예제
System.Data.SqlClient
32
6. 전체 예제
System.Data.SqlClient
33
namespace
using
Dictionary<Tkey, Tvalue>
DataTable
SqlConnection
SqlCommand
SqlDataReader
------------------------------
Repeater Control
ListView Control
이것만 알면 나도 .NET 개발자
34
1. Data Binding을 편하게 하는 .NET Control
Repeater / ListView
35
2. Repeater Front Code
Repeater / ListView
36
3. Repeater Behind Code
Repeater / ListView
37
4. ListView Front Code ( Insert/Edit/EmptyData Template 기능도 있어요 )
Repeater / ListView
38
5. ListView Behind Code
Repeater / ListView
39
고급 개발자가 되기 위한 LINQ
40
고급 개발자가 되기 위한 LINQ
LINQ란?
- Language Integrate Query
- Extend Method
- Query Syntax
- Anonymous Type
- Lambda Expression
41
고급 개발자가 되기 위한 LINQ
42
고급 개발자가 되기 위한 LINQ
43
고급 개발자가 되기 위한 LINQ
44
고급 개발자가 되기 위한 LINQ
LINQ to SQL
45
고급 개발자가 되기 위한 LINQ
더 알고 싶다면 아래 URL에서…
C#과 Java의 Lambda Expression
C#의 LINQ / Java의 Stream API
C#의 PLINQ / Java의 Parallel Stream API
를 정리한 Slide Share & 동영상
〃
http://www.slideshare.net/junseokjung1/hot-trend-lambda-expressions-
compare-c-with-java
〃
〃
https://www.youtube.com/watch?v=ETV91yH8sZ4&feature=youtu.be
〃
46
Expected to .NET Framework
47
2015년 4월…
- Spring Camp 2015에서 했던 발언…
〃
제품 기술에 대해 전혀 모르는,
Super Sales 출신
스티브 발머가 떠났습니다.
〃
Expected to .NET Framework
48
2015년 4월…
- Spring Camp 2015에서 했던 발언…
〃
Super Developer 출신
사티아 나델라의 새로운 MS의 움직임이
매우 기대 됩니다.
〃
Expected to .NET Framework
49
2015년 4월…
- Spring Camp 2015에서 했던 발언…
〃
Open source project 증가,
Linux Platform Collaboration
〃
Expected to .NET Framework
50
2015년 4월…
- Spring Camp 2015에서 했던 발언…
〃
이제는 M$가 아니라는 증거
〃
Expected to .NET Framework
51
〃
LINQ Provider를 살려보자!!
MS-SQL만 지원하는,
LINQ to SQL부터
뜯어고치는 것이 혁신의 시작!
〃
Expected to .NET Framework
52
〃
이라고 했지만…
〃
Expected to .NET Framework
53
〃
LINQ TO SQL은 가볍게 나온 Provider
여러 개의 DB를 지원하는
Enterprise한 이슈에 대한 해결책은
Entity Framework!!
〃
Expected to .NET Framework
54
〃
만약 사용하고 있는 DB가 SQL Server( MS-SQL) 라면,
LINQ To SQL을 사용 하는 것이 바람직하다.
그 외의 상황이라면,
Entity Framework를 도입해야 한다.
( NHibernate, Spring.NET, MyBatis.NET )
〃
Expected to .NET Framework
55
〃
하지만,
처음부터 Entity Framework를 사용하는 것은
매우 무겁고 진입장벽도 높다.
〃
Expected to .NET Framework
56
〃
따라서 새롭게 나온 결론은…
〃
Expected to .NET Framework
57
〃
Entity Framework의 무거움을 해소하기 위한
무엇인가가 나타나야 한다.
마치
Java의 Spring Boot와 같은…
가볍고 빠르게 소규모 프로젝트에서 사용 할 수 있는,
Entity Boot 같은 것이 나오면 어떨까?
〃
Expected to .NET Framework
58
Q&A
(korcosin@gmail.com)
59
Thank You !!
〃
잔잔한 바다에서는
좋은 뱃사공이 만들어지지 않는다.
- 영국 속담 -
〃

Contenu connexe

Tendances

그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기
Sangkyoon Nam
 

Tendances (20)

Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 
Java the good parts
Java the good partsJava the good parts
Java the good parts
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
 
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
 
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
 
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
 
팀장 잔소리
팀장 잔소리팀장 잔소리
팀장 잔소리
 
Tech Update - The Future of .NET Framework (김명신 부장)
Tech Update - The Future of .NET Framework (김명신 부장)Tech Update - The Future of .NET Framework (김명신 부장)
Tech Update - The Future of .NET Framework (김명신 부장)
 
TensorFlow.js & Applied AI at the Coca-Cola Company
TensorFlow.js & Applied AI at the Coca-Cola CompanyTensorFlow.js & Applied AI at the Coca-Cola Company
TensorFlow.js & Applied AI at the Coca-Cola Company
 
도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택
 
그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기
 
예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스
 
[D2 CAMPUS] Dodge the Dodge - GoN
[D2 CAMPUS] Dodge the Dodge - GoN[D2 CAMPUS] Dodge the Dodge - GoN
[D2 CAMPUS] Dodge the Dodge - GoN
 
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
 
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
 
이클립스 플랫폼
이클립스 플랫폼이클립스 플랫폼
이클립스 플랫폼
 
[부스트캠프 Tech Talk] 김봉진_WandB로 Auto ML 뿌수기
[부스트캠프 Tech Talk] 김봉진_WandB로 Auto ML 뿌수기[부스트캠프 Tech Talk] 김봉진_WandB로 Auto ML 뿌수기
[부스트캠프 Tech Talk] 김봉진_WandB로 Auto ML 뿌수기
 

En vedette

3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
KH Park (박경훈)
 
『누워서 읽는 알고리즘』 - 미리보기
『누워서 읽는 알고리즘』 - 미리보기『누워서 읽는 알고리즘』 - 미리보기
『누워서 읽는 알고리즘』 - 미리보기
복연 이
 
C#강좌
C#강좌C#강좌
C#강좌
e12g
 
KGC10 - Visual C++10과 디버깅
KGC10 - Visual C++10과 디버깅KGC10 - Visual C++10과 디버깅
KGC10 - Visual C++10과 디버깅
흥배 최
 
[KGC 2011]Boost 라이브러리와 C++11
[KGC 2011]Boost 라이브러리와 C++11[KGC 2011]Boost 라이브러리와 C++11
[KGC 2011]Boost 라이브러리와 C++11
흥배 최
 
공성대전 C# 사용기
공성대전 C# 사용기공성대전 C# 사용기
공성대전 C# 사용기
Myoung-gyu Gang
 
좌충우돌 ORM 개발기 | Devon 2012
좌충우돌 ORM 개발기 | Devon 2012좌충우돌 ORM 개발기 | Devon 2012
좌충우돌 ORM 개발기 | Devon 2012
Daum DNA
 
닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기
흥배 최
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
흥배 최
 
Webservice cache strategy
Webservice cache strategyWebservice cache strategy
Webservice cache strategy
DaeMyung Kang
 

En vedette (20)

Hello, C# : OOP
Hello, C# : OOPHello, C# : OOP
Hello, C# : OOP
 
주간 소셜미디어 트렌드(9월 4주, 10월 1주)
주간 소셜미디어 트렌드(9월 4주, 10월 1주)주간 소셜미디어 트렌드(9월 4주, 10월 1주)
주간 소셜미디어 트렌드(9월 4주, 10월 1주)
 
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
 
『누워서 읽는 알고리즘』 - 미리보기
『누워서 읽는 알고리즘』 - 미리보기『누워서 읽는 알고리즘』 - 미리보기
『누워서 읽는 알고리즘』 - 미리보기
 
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
 
C#강좌
C#강좌C#강좌
C#강좌
 
KGC10 - Visual C++10과 디버깅
KGC10 - Visual C++10과 디버깅KGC10 - Visual C++10과 디버깅
KGC10 - Visual C++10과 디버깅
 
사업계획서
사업계획서사업계획서
사업계획서
 
크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET Core크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET Core
 
『밑바닥부터 시작하는 딥러닝』 - 미리보기
『밑바닥부터 시작하는 딥러닝』 - 미리보기『밑바닥부터 시작하는 딥러닝』 - 미리보기
『밑바닥부터 시작하는 딥러닝』 - 미리보기
 
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
 
[KGC 2011]Boost 라이브러리와 C++11
[KGC 2011]Boost 라이브러리와 C++11[KGC 2011]Boost 라이브러리와 C++11
[KGC 2011]Boost 라이브러리와 C++11
 
공성대전 C# 사용기
공성대전 C# 사용기공성대전 C# 사용기
공성대전 C# 사용기
 
좌충우돌 ORM 개발기 | Devon 2012
좌충우돌 ORM 개발기 | Devon 2012좌충우돌 ORM 개발기 | Devon 2012
좌충우돌 ORM 개발기 | Devon 2012
 
닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
 
C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발
 
ORM을 활용할 경우의 설계, 개발 과정
ORM을 활용할 경우의 설계, 개발 과정ORM을 활용할 경우의 설계, 개발 과정
ORM을 활용할 경우의 설계, 개발 과정
 
NLog 소개
NLog 소개NLog 소개
NLog 소개
 
Webservice cache strategy
Webservice cache strategyWebservice cache strategy
Webservice cache strategy
 

Similaire à 자바_웹_개발자를_위한_c#_핵심_기능

V8 add on with middleware modules
V8 add on with middleware modulesV8 add on with middleware modules
V8 add on with middleware modules
Jay Kim
 

Similaire à 자바_웹_개발자를_위한_c#_핵심_기능 (20)

[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
 
2021년 3월 27일 개발자 이야기
2021년 3월 27일 개발자 이야기2021년 3월 27일 개발자 이야기
2021년 3월 27일 개발자 이야기
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
Spring one참석기 ksug
Spring one참석기 ksugSpring one참석기 ksug
Spring one참석기 ksug
 
당근마켓에서 IaC경험
당근마켓에서 IaC경험당근마켓에서 IaC경험
당근마켓에서 IaC경험
 
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
ifcpp build guide
ifcpp build guideifcpp build guide
ifcpp build guide
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCP
 
2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁
 
V8 add on with middleware modules
V8 add on with middleware modulesV8 add on with middleware modules
V8 add on with middleware modules
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & Nana
 
if kakao dev 2019_Ground X_Session 01
if kakao dev 2019_Ground X_Session 01if kakao dev 2019_Ground X_Session 01
if kakao dev 2019_Ground X_Session 01
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 

자바_웹_개발자를_위한_c#_핵심_기능