제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Hands-on 팀] : 수어 번역을 통한 위험 상황 속 의사소통 시스템 구축BOAZ Bigdata
데이터 분석 프로젝트를 진행한 Hands-on 팀에서는 아래와 같은 프로젝트를 진행했습니다.
'수어 번역 프로젝트'는 재난 상황 속 소외되는 농인들에게 소통의 문을 열어주자는 목표를 가지고 시작되었습니다. Hands-on팀의 수어 번역 모델을 통해 농인들은 위험 상황 속에서 도움을 요청하는 등 소통의 한계를 극복할 수 있습니다.
16기 곽민지 (동덕여자대학교 정보통계학과)
16기 김영민 (인천대학교 경제학/컴퓨터공학)
16기 김영은 (건국대학교 응용통계학과)
16기 이다인 (이화여자대학교 휴먼기계바이오공학)
AI/Machine Learning의 한 분야인 Natural Language Processing (NLP)에 대해서 발표를 할 예정입니다. NLP는 한국어로 “자연어 처리”로서 Computer Vision 및 Image Processing에서 “언어적 문맥” 이해와 “그 처리”는 상당히 중요한 역할을 차지합니다. Image/Video를 Language화하여 처리하는 다양한 알고리즘이 존재하며 CVPR/ICCV의 학회에서도 핫한 분야 중 하나입니다. 대표적인 분야는 Image/Video Captioning, Description 및 Visual Q&A 등이 있습니다.
그 중에서도 핵심 Background가 되는 Word2Vec에 대해서 소개하고자 합니다. Word2Vec은 언어처리 뿐만 아니라 Generative Model과도 연관성이 높다는 것이 특징이며. NLP의 모든 분야에서의 핵심 이론으로 보시면 되겠습니다.
HTML is a markup language that defines the structure and layout of web pages. It uses tags to annotate text, images and other content that make up a web page. HTML allows web developers to write and structure content semantically with tags like <strong> for emphasizing text, <img> for including images, and <meta> for metadata.
HTML is a markup language that defines the structure and layout of web pages. It uses tags to annotate text, images, and other content that make up a page. HTML also allows specifying character encodings like UTF-8 to properly display text.
HTML is a markup language that defines the structure and layout of web pages. It uses tags to annotate text, images, and other content that make up a page. Key HTML tags include <strong> for emphasizing text, <img> for inserting images, <meta> for metadata, and <a> for creating hyperlinks. The latest version is HTML5, maintained by the W3C to support the latest multimedia and other web standards.
HTML is a markup language that defines the structure and layout of web pages. It uses tags to annotate text and embed images and other multimedia. HTML documents must specify a character encoding like UTF-8 to define how text is encoded.
HTML is a markup language that defines the structure and layout of web pages. It uses tags to annotate text and embed images, videos, or other files. Key HTML tags include <strong> for emphasizing text, <img> for inserting images, and <meta> for providing metadata and specifying character encoding.
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Hands-on 팀] : 수어 번역을 통한 위험 상황 속 의사소통 시스템 구축BOAZ Bigdata
데이터 분석 프로젝트를 진행한 Hands-on 팀에서는 아래와 같은 프로젝트를 진행했습니다.
'수어 번역 프로젝트'는 재난 상황 속 소외되는 농인들에게 소통의 문을 열어주자는 목표를 가지고 시작되었습니다. Hands-on팀의 수어 번역 모델을 통해 농인들은 위험 상황 속에서 도움을 요청하는 등 소통의 한계를 극복할 수 있습니다.
16기 곽민지 (동덕여자대학교 정보통계학과)
16기 김영민 (인천대학교 경제학/컴퓨터공학)
16기 김영은 (건국대학교 응용통계학과)
16기 이다인 (이화여자대학교 휴먼기계바이오공학)
AI/Machine Learning의 한 분야인 Natural Language Processing (NLP)에 대해서 발표를 할 예정입니다. NLP는 한국어로 “자연어 처리”로서 Computer Vision 및 Image Processing에서 “언어적 문맥” 이해와 “그 처리”는 상당히 중요한 역할을 차지합니다. Image/Video를 Language화하여 처리하는 다양한 알고리즘이 존재하며 CVPR/ICCV의 학회에서도 핫한 분야 중 하나입니다. 대표적인 분야는 Image/Video Captioning, Description 및 Visual Q&A 등이 있습니다.
그 중에서도 핵심 Background가 되는 Word2Vec에 대해서 소개하고자 합니다. Word2Vec은 언어처리 뿐만 아니라 Generative Model과도 연관성이 높다는 것이 특징이며. NLP의 모든 분야에서의 핵심 이론으로 보시면 되겠습니다.
HTML is a markup language that defines the structure and layout of web pages. It uses tags to annotate text, images and other content that make up a web page. HTML allows web developers to write and structure content semantically with tags like <strong> for emphasizing text, <img> for including images, and <meta> for metadata.
HTML is a markup language that defines the structure and layout of web pages. It uses tags to annotate text, images, and other content that make up a page. HTML also allows specifying character encodings like UTF-8 to properly display text.
HTML is a markup language that defines the structure and layout of web pages. It uses tags to annotate text, images, and other content that make up a page. Key HTML tags include <strong> for emphasizing text, <img> for inserting images, <meta> for metadata, and <a> for creating hyperlinks. The latest version is HTML5, maintained by the W3C to support the latest multimedia and other web standards.
HTML is a markup language that defines the structure and layout of web pages. It uses tags to annotate text and embed images and other multimedia. HTML documents must specify a character encoding like UTF-8 to define how text is encoded.
HTML is a markup language that defines the structure and layout of web pages. It uses tags to annotate text and embed images, videos, or other files. Key HTML tags include <strong> for emphasizing text, <img> for inserting images, and <meta> for providing metadata and specifying character encoding.
7. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
JDK 란?
7
Java환경에서 돌아가는 프로그램을 개발하는 데
필요한 툴들을 모아놓은 소프트웨어 패키지이다.
JDK(Java Development Kit) 란
8. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
JDK 다운로드 및 설치
8
9. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
JDK 다운로드 및 설치
9
10. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
10
IDE 란?
10
프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서
처리하는 환경을 제공하는 소프트웨어이다.
컴파일러 + 텍스트 편집기 + 디버거 + 플러그인 등등
IDE(Integrated Development Environment) 란?
11. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
IntelliJ IDEA
11
우리가 사용하게 될 IDE는 <IntelliJ IDEA> 입니다.
이 IDE를 사용하는 이유는 단순합니다.
대중적으로 사용하는 <eclipse>보다
더 안정적으로
더 편안하고
더 편리하게
코딩을 할 수 있습니다.
12. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
IntelliJ IDEA 다운로드
12
13. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
IntelliJ IDEA 다운로드
13
14. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
IntelliJ IDEA 설치
14
15. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
IntelliJ IDEA 설치
15
16. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
16
설치완료
17. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
개발한 적합한 폰트 고르기
17
네이버에서 제공하는 D2Coding 를 추천합니다.
18. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
폰트 변경하기
18
19. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
19
폰트 변경하기
20. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
20
폰트 변경하기
21. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
21
폰트 변경하기
‘D2Coding’
14 사이즈를
추천합니다.
22. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
첫 프로젝트 만들어보기
22
23. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
JDK 경로 설정
23
24. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
프로젝트 명 짓기
24
‘hello-world’
25. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
툴바, 툴버튼 활성화
25
26. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
생애 첫 Class 만들어보기
26
27. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
나의 생애 첫 Class ‘Main’
27
나의 생애 첫 Class인
‘Main’이 생겼습니다.
의미는 아직 모르겠지만
더 진행해 봅시다.
다 작성된 후에 설명해
드릴께요.
28. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
public static void main ?
28
29. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
System.out.println ?
29
30. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
Hello, world! 완성!
30
“Hello, world!”
31. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
실행 시켜보기
31
32. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
쉬는 시간
32
33. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
Hello, world! 를 보고 생각해보자.
33
“Hello, world!”
34. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
객체 란 무엇인가.
34
데이터
(variable)
기능
(method)
객체
+
35. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
심즈를 통해서 알아보는 객체 지향
35
36. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
심즈를 통해서 알아보는 객체 지향
36
37. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
Class 란 무엇인가?
37
38. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
Class 란 무엇인가?
38
Class
Object
(객체)
Object
(객체)
Object
(객체)
…
인스턴스 화
Instantiation
39. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
Hello, world! 를 분석해보자 1
39
“Hello, world!”
이 전체가 클래스
이 부분이 클래스
이름
40. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
Hello, world! 를 분석해보자 2
40
“Hello, world!”
이 전체가 메소드
이 부분이 메소드
이름
41. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
Hello, world! 를 분석해보자 2
41
“Hello, world!”
System.out.println 은
출력하는데 사용된다.
(메소드)
42. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
나를 객체로 만들어보자
42
필요한 데이터들이
무엇이 있을까?
43. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
나를 객체로 만들어보자
43
이름, 나이, 성별,
국적, 소속, 고향,
주소, 성향, 종교,
…
이걸 코드로
어떻게
나타낼 수 있을까?
44. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
기본적인 데이터 타입
44
숫자(정수)는 int
> int 변수명
실수는 double
> double 변수명
문자는 String
> String 변수명
참/거짓 여부는 boolean (true/false 로 나타냄)
> boolean 변수명
변수명은
어떻게 지어야 할까?
45. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
변수 짓기는 생각보다 어려운 일
45
변수명을 봤을 때
용도가 이해되도록 쓰인 것이
좋은 변수명
46. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
자바의 변수명은 CamelCase를 따라 짓는다!
46
클래스는 첫 문자를 대문자로!
public class MainClass
나머지는 첫 문자를 소문자로!
int currentYear = 2017;
상수는 대문자와 underscore로!
final static double PI_VALUE = 3.14;
문장의 끝에는 항상 세미콜론!
47. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
기본적인 데이터 타입
47
숫자는 int
> int age = 24;
실수는 double
> double grade = 3.75;
문자는 String
> String name = “박종훈”;
참/거짓 여부는 boolean (true/false 로 나타냄)
> boolean isGraduated = false;
48. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
변수 활용하기1
48
49. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
변수 활용하기1
49
"제 올해 나이는 " + age + "살 입니다."
> "제 올해 나이는 24살 입니다."
String + anything = String
50. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
변수 활용하기2
50
이건 어떨까요?
어떤값이 나올까요?
51. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
변수 활용하기2
51
정답은
“제 내년 나이는 241살 입니다.”
입니다.
52. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
변수 활용하기2
52
처리의 우선순위를 정하고 싶다면
괄호를 사용하여 처리해야 합니다.
53. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
변수 활용하기3
53
지역변수
54. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
Class 만들어보기
54
내 옆사람을
객체화 해봅시다.
55. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
Class 만들어보기 (예제 : 박종훈)
55
전역변수
56. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
객체 생성하기
56
57. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
객체내의 값에 접근하기
57
58. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
생각해보기
58
생각해보기
59. 비전공자를 위한 기초 코딩 1주차. 개발 환경 설정 및 변수
J D K 설 치 I D E 설 치 및 설 정 H e l l o , w o r l d ! 객 체 지 향 이 해 하 기
Q&A
59
Q&A
Editor's Notes
우리는 이 많은 언어들 가운데 자바 라는 언어로 교육을 진행합니다.
왜 저 많은 언어 중에 자바로 교육을 진행하는 걸까요?
컴퓨터 프로그래밍에 사용되는 언어는 다양합니다.
위 그림은 현대에 사용되는 프로그래밍 언어의 가계도(족보) 입니다.
우리가 배울 언어는 저기 있는 자바입니다.
그 언어는 가장 많은 곳에서 사용되고 있기 때문입니다.
물론 그것이 배우기 쉬운 언어를 의미하는 것은 아닙니다.
잠시후에 설치할 JDK(자바 개발 도구)를 보게되면 다음과 같은 홍보 문구를 볼 수 있습니다.
“3 Billion Devices Run Java”
자바의 장점이 잘 도드라지는 홍보 문구입니다.
다양한 기기에 사용할 수 있다는 점인데요.
자바의 경우 JVM(자바 가상 머신)상에서 동일하게 동작하도록 설계되어있습니다.
최근에는 150억으로 홍보하고 있습니다.
안드로이드의 영향일 것으로 예상되네요.
우리나라에서는 ‘전자정부 프레임워크 라는 것을 발표되면서
정부 관련 사업들은 대부분 JAVA(Spring) 로 운영됩니다
멋쟁이 사자처럼 이두희
“멋쟁이사자처럼 프로그래머 이두희 / 더 이상 나를 천재해커라 부르지 마라”
https://youtu.be/hUZuOYO_BAA
영상에 나와있는 것처럼 코딩 실력을 갖춰서 자기가 원하는걸 스스로 기획해보고 만들 수 있었으면 좋겠습니다.
JDK(Java Development Kit) 란 : Java환경에서 돌아가는 프로그램을 개발하는 데 필요한 툴들을 모아놓은 소프트웨어 패키지이다.
jdk 다운로드 하기
Google 에서 jdk 8 download 를 검색한 후
첫번째 나오는 링크에 들어갑니다.
jdk 다운로드 하기
오라클 정책에 동의 하신 후 Windows x64로 다운로드 합니다. (Windows x64 가 아닐경우 본인의 환경에 맞게 다운로드)
다운이 완료되면 설치를 시작합니다. (열심히 다음 누르시면 됩니다.)
IDE(Integrated Development Environment) 란?
- 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어이다.
- 컴파일러 + 텍스트 편집기 + 디버거 + 플러그인 등등
우리가 사용하게 될 IDE는 <IntelliJ IDEA> 입니다.
이 IDE를 사용하는 이유는 단순합니다.
eclipse보다 더 안정적으로 더 편안하고 더 편리하게 코딩을 할 수 있습니다.
(물론 싫어하시는 분들도 있습니다. 기존에 이클립스로 작업하시던 분들...)
학교들이나 교육기관들에서 보통 eclipse로 가르치고
또 유료라는 오해에 우리나라에서는 잘 알려져 있지 않은 슬픈 IDE.
하지만 아는 사람은 아는 강력한 IDE.
Google에서 만든 Android 개발 시 사용하는 Android Studio가 인텔리제이 기반
필요할 경우 학생에게는 ultimate 버전을 무료로 제공하니 사용하면 됨 (그냥 사용시, 1년에 10만원 이내)
구글에서 intellij idea download를 검색한 뒤 처음 나온 링크를 클릭합니다.
저희가 사용할 에디션은 커뮤니티 에디션입니다.
오른쪽 다운로드를 눌러줍니다.
다운이 완료되면 설치를 시작합니다. (마찬가지로 열심히 다음 누르시면 됩니다.)
이 부분에서는 원하는 테마를 설정해 주시고
필요하지 않는다면 Swing과 Android 는 Disable 시키시는걸 추천해드립니다.
안드로이드를 추후에 개발하신다 하더라도 나중에 안드로이드 스튜디오를 별도로 까는걸 추천해드립니다.
네이버에서 제공하는 D2Coding 을 사용합니다.
코딩할 때 적합한 문자이며 한글에 최적화 되어 있습니다.
구글에서 d2coding을 검색해 첫번째로 뜨는 링크를 클릭합니다.
본문의 다운로드 링크를 클릭하여 Assets 에서 폰트를 다운로드 합니다.
다운로드가 마친 후 폰트를 클릭하여 install 해줍니다.
Configure – Settings 클릭
Editor – font 에서 설정 후 OK
<No SDK> 라고 뜨실텐데 그 이유는 JDK 경로가 아직 설정되지 않았기 때문입니다.
New를 눌러 처음에 설치한 JDK 경로를 잡아줍니다.
‘hello-world’ 로 프로젝트 네임을 설정해 주고 Finish를 눌러 줍니다.
툴바, 툴버튼 활성화 를 위해
상단의 View 에서 Toolbar와 Tool Buttons 을 눌러 활성화 합니다.
src 에 대고 오른쪽 마우스
New – Java Class 선택
Name 에 ‘Main’을 입력하고 OK를 누릅니다. (구분을 위해 Main 말고 다른것을 입력해도 좋음)
나의 생애 첫 Class ‘Main’ 이 생겼습니다.
의미는 아직 모르겠지만 더 진행해 봅시다.
다 작성된 후에 설명해 드릴께요.
psvm 을 입력하면 위와 같은 팝업이 나오게 됩니다.
이 상태에서 엔터를 누르게 되면 오른쪽과 같이 자동 완성이 됩니다.
물론 직접 오른쪽을 작성하셔도 문제는 없습니다.
System.out.println 의 괄호 안에 “Hello, world!” 를 입력 해줍시다.
좌측을 플레이 버튼을 누른 후 (둘 중 아무거나 누르셔도 됩니다.)
Run ‘Main.main()’ 을 누르게 되면
오른쪽과 같이 “Hello, world!” 가 출력이 됩니다.
‘Hello, world!’를 출력하는 것이 프로그래밍의 첫 번째 단계로 암묵적으로 정해진 룰이 되었는데
C언어의 창시자가 직접 쓴 “The C Programming Language“ 의 첫번째 예제입니다.
이 것이 유명해 지면서 거의 모든 프로그래밍 언어의 첫번째 예제로 사용되고 있습니다.
물론 이 간단한 예제에도 생각해볼 부분이 많습니다.
뭐가 보이시나요?
생각해 볼 부분
- public
- class
- Main (얘는 왜 파란색이 아니야?)
등등등…
사실 객체지향에 대한 설명은 보통 훨씬 뒤에서 나오나 저희는 먼저 간단하게 배워보도록 하겠습니다.
이 부분부터 다소 어려울 수 있으나 어려우시다면 정상입니다 ;p
객체 지향 프로그래밍은 프로그램을 어떻게 설계해야 하는지에 대한 방법론 중 하나입니다.
객체는 데이터와 기능으로 구성됩니다.
현실세계의 현상이나 과정을 객체화 하는 것이 객체지향의 목표입니다.
각 객체는 서로 상호작용을 할 수 있습니다.
이미지 출처 : https://en.wikipedia.org/wiki/The_Sims
이미지 출처 : http://blog.naver.com/mife/220121063614
붕어빵 틀로 붕어빵을 여러 번 찍어 낼 수 있음
이미지 출처 : http://yeobhoh126.tistory.com/entry/%EB%B6%95%EC%96%B4%EB%B9%B5%ED%8B%80-%EB%AF%B8%EB%8B%88-%EB%B6%95%EC%96%B4%EB%B9%B5%EA%B8%B0%EA%B3%84%EF%BC%A0
그런 것처럼 클래스를 이용하여 여러 번 객체를 생성해 낼 수 있음
객체 사용을 위한 틀이라고 생각하면 편함
인스턴스화 : 간단하게 이야기 하면 객체를 만드는 것
클래스와 클래스명 설명
및 브라켓 설명
브라켓은 쳐주는 것이 구글 스타일에 따르는 방식 이나
반드시 따라야 하는 것은 아니며, 본인이 편한(혹은 속한 조직 에 따른) 방식을 사용하면 됨
클래스는 첫 문자를 대문자로!
public class MainClass
나머지는 첫 문자를 소문자로!
private int currentYear = 2017;
상수는 대문자와 underscore로!
final static double PI_VALUE = 3.14;
문장의 끝에는 항상 세미콜론!
여기서 ‘=‘ 는 같다를 의미하는게 아니라 할당을 의미함
같다는 ‘==’ 이다.
"제 올해 나이는 " + age + "살 입니다."
> "제 올해 나이는 24살 입니다."
String + anything = String
이유는 (아직 이해는 안되겠지만) 모든 객체는 Object를 상속하기 때문에 toString이라는 메소드가 동작하기 때문
정답은 “제 내년 나이는 241살 입니다.” 입니다.
괄호를 치고 재 실행을 하면 정상적으로 출력 되는걸 볼 수 있습니다.
이미지 출처 : 나무위키(https://namu.wiki/w/%ED%8C%8C%EC%9D%BC:attachment/brainfullgadong.jpg)
정상적으로 출력되는 것들을 볼 수 있습니다.
참고로 함수 안에서 정의된 변수는 지역변수라고 합니다.
함수 안에서만 다시 읽고 쓸 수 있으며
한번 지나가면 사라지는 값들입니다.
객체 명은 자기 영어이름으로 짓고 서로 이야기 해보시면서 객체화 해보시면 됩니다.
여기서 사용되는건 전역 변수(global variable) 라고 불리며
이 객체가 사라지기 전까지 읽고 쓰고 재사용할 수 있습니다.
박종훈 이라는 객체를 생성했습니다.
1. 과연 이번 코드는 좋은 코드일까?
>
아닙니다. 재사용 하기에도 부적합한 형태입니다. 또한 설명이 빠진 부분도 있었습니다. (public은 무엇인가.)
다만 설명을 위해 위와 같이 간단하게 작성하였으며 3주차에 ‘객체지향 이해하기 2’ 에서 배워보도록 하겠습니다.