1 / 32

프로그래밍 언어

프로그래밍 언어. 전산정보처리학과 중위 ( 진 ) 정세화. 교수사관 6 기 임관. 참모 총장상 수상. 민간 학력. 아주대학교 정보 및 컴퓨터 공학부 졸업 ( 학사 ) 아주대학교 BK21 정보통신전문대학원 정보통신공학과 졸업 ( 석사 ). 제 2 사업팀. 기술 연구소. 국제 공인자격증. Cisco. CCNA(Cisco Certified Network Associate] CCNP[Cisco Certified Network Professional)

fathi
Download Presentation

프로그래밍 언어

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 프로그래밍 언어 전산정보처리학과 중위(진) 정세화

  2. 교수사관 6기 임관

  3. 참모 총장상 수상

  4. 민간 학력 아주대학교 정보 및 컴퓨터 공학부 졸업(학사) 아주대학교 BK21정보통신전문대학원 정보통신공학과 졸업(석사)

  5. 제 2 사업팀

  6. 기술 연구소

  7. 국제 공인자격증 • Cisco CCNA(Cisco Certified Network Associate] CCNP[Cisco Certified Network Professional) CSQ(Cisco Firewall Specialist)

  8. 국제 공인자격증 국제 공인자격증 • Cisco(네트워크 관련 자격증) • Oracle(데이터 베이스 관련 자격증) • SUN Microsystems(자바 프로그래밍 자격증) • Oracle OCP 8i(Oracle Certified Professional 8i) OCP 9i Upgrade CCNA(Cisco Certified Network Associate] CCNP[Cisco Certified Network Professional) CSQ(Cisco Firewall Specialist) OCP 8i(Oracle Certified Professional 8i) OCP 9i Upgrade SCJP(Sun Certified Java Programmer)

  9. 국제 공인자격증 • SUN Microsystems SCJP(Sun Certified Java Programmer)

  10. 3사관학교 전입

  11. 자바 프로그래밍 입문 Java Programming for Beginners 전산정보처리학과 중위(진) 정세화

  12. chapter 01. 자바 언어의 소개

  13. 학습목표 • 자바 언어의 특징 • 자바 프로그램의 종류 • 자바 언어와 다른 언어의 차이점 • 자바 플랫폼과 자바 가상 머신 이해 • 객체지향 언어로 자바 언어가 적합한 이유 이해

  14. 자바 소개 • 자바 언어 • C, 포트란, 스몰토크, 펄, C++과 같은 고급 언어 • 3세대 언어 • C 언어와 문법적으로 유사하나 객체지향 언어임 • 다양한 객체지향 언어의 특성을 조합해서 개발 • 미국 선 마이크로시스템즈 사에서 개발 • 배우기 쉽고, 빠른 개발이 가능한 언어 • 가비지 컬렉션으로 malloc(), free()가 없음

  15. 자바 프로그램의 형태 – Applet`과 `Application • 애플릿 (Applet) • 웹 브라우저에 동작하는 프로그램 • 프로그램 코드는 웹 서버 저장실행은 PC에서 웹 서버로 부터 HTML 문서와 함께 전달 • HTML문서에 의해서 자동 실행 • 악의적인 코드로 부터 보안 장치 있음 • 애플리케이션 (Application) • 일반 응용 프로그램과 유사하게 동작 • 프로그램 코드가 저장되어 있는 PC에서 실행 • 모든 자원을 사용할 수 있으므로 실행 당사자가 유의함 * 자바 프로그램은 일반적으로 JAR 압축 파일 형태로 제공

  16. 애플릿과 애플리케이션의 동작

  17. 애플릿과 애플리케이션의 코드 작성 (참고) • 애플릿 • java.awt.applet.Applet 클래스로 부터 확장 • init(), start(), paint(), stop(), destroy()등의 메소드를 재정의 • 애플리케이션 • private으로 정의된 클래스가 아니어야 함 • public static void main() 메소드를 구현 • 지금은 잘 이해가 되지 않아도 상관없음

  18. 자바 플랫폼 • 플랫폼 • 서로 다른 하드웨어나 운영체제에서 동일한 프로그램이 거의 유사하게 동작할 수 있게 해주는 환경 • 자바 플랫폼 • 자바 언어 • 자바 개발 도구 (JDK) • 자바 실행 환경 (JRE) 개발자 지원 사용자 지원 JDK (Java Development Kit) JRE (Java Runtime Environment) • JRE는 일반 사용자를 위하여 JDK에서 컴파일러와 디버거를 삭제하여 단순화 시킨 것

  19. 자바 플랫폼 특징 • 자바 가상 머신 • 다양한 운영체제에서 동작하기 위한 방식 채택 • 자바 컴파일러가 생성한 바이트 코드를 실행 • 컴퓨터 처리 수준에 맞는 구별 • J2ME (Micro Edition) • 처리 수준이 상대적으로 낮은 휴대폰, 웹페드, 디지털 TV 대상 • J2SE (Standard Edition) • 일반 데스크탑 PC 대상 • J2EE (Enterprise Edition) • 처리 수준이 상대적으로 높은 서버/워크스테이션 급 • 이번 강의는 J2SE에 맞춰져 있으며, 휴대폰에서는 J2ME를 많이 사용함 • 단, 국내에서는 자바 언어와 C 언어를 함께 지원하는 WIPI를 적용하기 시작함

  20. 플랫폼 이란? (참조) • 윈도우 플랫폼 • 마이크로소프트 사에서 나온 운영체제 통칭 • Windows95/98 • WindowsNT/2000 • WindowsXP/2003 • 특정 회사의 제품 군으로써의 플래폼 • 리눅스 플랫폼 • Linux 핵심 코드를 바탕으로 한 제품들 • RedHat 리눅스, Hancom 리눅스, Debian 리눅스 • 임베디드 리눅스, 몬타비스타 리눅스 (J2ME 정도에 해당) • 핵심 코드를 공유하는 의미의 플랫폼

  21. 바이트 코드와 네이티브 코드 • 바이트 코드 • CPU나 운영체제와 상관없이 동일한 형태의 코드 • 자바 컴파일러에 의해서 생성 • 자바 가상 머신을 통하여 다양한 환경에서 실행 • 예) CA FE BA BE 00 03 00 2D 00 3E 08 00 3B • 네이티브 코드 • CPU나 운영체제에 따라서 상이한 형태의 코드 • 각종 프로그래밍 컴파일러에 의해서 생성 • 해당 CPU나 운영체제에서만 실행 가능 • 예) 4D 5A 90 00 03 00 00 00 04 00 00 00 FF 00 • CA FE BA BE는 자바 바이트 코드임을 알려주는 매직 코드임.

  22. 자바 가상 머신 • 자바 코드의 실행 • 자바 프로그래밍 • 자바 컴파일러를 통해서 바이트 코드 생성 • 자바 가상 머신을 통해서 바이트 코드 수행 • 자바 가상 머신 • 추상적인 머신 - 실제 머신이 아님 • 명령어 집합, 레지스터 집합, 스택, 힙, 메소드 영역 구성 • 실제 네이티브 코드로 작성되어 있음 • C언어, 자바 언어, 어셈블리어로 작성 • 자바 언어가 포함된 것은 일부 기본 패키지의 클래스가 C언어와 연결되어 있음을 의미

  23. 자바 가상 머신의 동작

  24. 객체지향 언어와 자바 • 객체지향 언어 • 1990년대 매우 중요한 이슈 • 1960년대 시뮬라 (Simula) 언어가 최초 • GUI 환경을 구현하는데 중요한 역할 제공 • 객체는 데이터와 메소드로 구성 • 객체지향 언어의 특성 • 단순함 – 프로그램을 쉽게 이해할 수 있음 • 재사용성 – 만들어 놓은 코드를 쉽게 재사용함 • 신속성 – 프로그램을 빠르게 제작함 자바 언어는 객체지향 특성을 잘 만족하는 언어임 • 객체지향 언어의 특징 중 비용 절감이 가장 중요함

  25. 자바 언어의 특징[1] • 배우기 쉽고 가르치기 쉬운 언어 • 내용은 작지만 범위는 넓다 • 인터프리트 방식으로 속도는 늦지만, 코드는 안정적이다 • 가비지 컬렉터로 메모리 관리가 용이 • 다양한 환경에서 동작이 가능함

  26. 자바 언어의 특징[2] • 좋은 객체지향 언어 • 자바 프로그램은 기본적으로 클래스 집합 • C언어의 라이브러리보다 진보된 개념의 패키지 지원 • 클래스 상속, 캡슐화, 다형성 지원

  27. 자바 언어의 특징[3] • 견고한 프로그래밍 언어 • 엄격한 문법적인 오류를 컴파일 시 감지 • 예외 처리 지원으로 런타임 오류 감소 • 가비지 컬렉터를 통한 메모리 접근 오류 금지 • 견고하다는 것은 영어로 robust하다고 한다. 이는 오류가 그만큼 줄어들었음을 의미한다

  28. 자바 언어의 특징[4] • 신속하고 이식성이 있는 언어 • 실행 코드 수준에서 호환성이 존재 (바이트 코드) • 자바 가상 머신의 이식성도 높은 편임 (IEEE754지원)

  29. 자바 언어의 특징[5] • 쓰레드 지원 언어 • 대부분의 언어는 쓰레드를 운영체제의 기능으로 사용 • 자바는 자체 쓰레드가 있기 때문에 쓰레드가 없는 환경에서도 쓰레드 기능을 제공해야 함 • green thread • 자바 가상 머신 스스로 쓰레드 관리 • native thread • 운영체제에서 제공하는 쓰레드 기능을 이용

  30. 요약 • 자바 프로그래밍 언어 • 자바 플랫폼 • 자바 가상 머신 • 객체지향 언어 • 자바 언어의 특징

  31. Thank you

More Related