본문 바로가기
GD's IT Lectures : 기초부터 시리즈/자바(JAVA) 기초부터 ~

[자바(JAVA)] (1) 자바 소개 및 학습 목표

by GDNGY 2023. 4. 26.

자바(Java) 프로그래밍 기초부터 하나하나

자바 프로그래밍란?

이 자바 프로그래밍 문서는 프로그래밍 초보자와 경험이 있는 개발자 모두를 대상으로 자바 언어를 배우고 이해하기 위한 도움을 제공합니다. 문서의 핵심 학습 목표는 다음과 같습니다.

  • 자바 언어의 기본 개념과 구조 이해

자바의 특징, 자료형, 변수, 연산자, 제어문, 반복문 등의 기본적인 프로그래밍 요소를 배우며, 자바 코드의 구조와 작동 원리를 이해합니다.

 

  • 자바를 사용한 간단한 프로그램 작성 및 실행

자바를 사용하여 간단한 프로그램을 작성하고 컴파일, 실행하는 방법을 익힙니다. 이를 통해 자바 프로그래밍의 기본 흐름을 익히게 됩니다.

 

  • 객체 지향 프로그래밍 원리 및 자바에서의 활용

객체 지향 프로그래밍의 핵심 개념인 클래스, 객체, 상속, 다형성, 캡슐화 등을 배우고, 이를 자바 프로그래밍에 적용하는 방법을 익힙니다.

 

  • 자바 라이브러리와 프레임워크 활용

자바의 표준 라이브러리와 다양한 오픈 소스 프레임워크를 활용하여 실용적인 프로그램을 개발하는 방법을 배웁니다. 이를 통해 자바 생태계의 다양한 리소스를 활용할 수 있게 됩니다.

 

  • 다양한 분야의 자바 활용 지식 습득

웹 개발, 모바일 개발, 인공지능, 블록체인 등의 다양한 분야에서 자바를 활용하는 방법과 기술을 배웁니다. 이를 통해 자바를 다양한 환경에서 활용할 수 있는 전문성을 갖춥니다.


이 문서는 자바의 기본 문법부터 고급 프로그래밍 기법, 프레임워크, 라이브러리 등 다양한 주제를 체계적으로 다룹니다.  실제 프로젝트에서 사용되는 도구와 기술들에 대한 설명과 예제도 포함하여, 이론과 실습을 통해 학습자의 실력 향상에 도움을 줍니다. 이 문서를 통해 자바 프로그래밍에 대한 폭넓은 지식과 실력을 쌓을 수 있습니다.

 

 


<목차>

 

 

1. 자바 소개

  1.1. 자바 언어의 역사

  1.2. 자바의 주요 특징

  1.3. 자바 플랫폼 및 버전

 

2. 자바 개발 환경 설정

  2.1. JDK 설치

  2.2. IDE 설치 및 설정 (Eclipse, IntelliJ IDEA)

  2.3. 환경 변수 설정

 

3. 자바 프로그램의 기본 구조

  3.1. 클래스와 메서드

  3.2. main 메서드

  3.3. System.out.println() 함수

 

4. 변수와 자료형

  4.1. 변수 선언

  4.2. 기본 자료형 (정수, 실수, 문자, 논리)

  4.3. 참조 자료형

 

5. 연산자와 수식

  5.1. 산술 연산자

  5.2. 비교 연산자

  5.3. 논리 연산자

  5.4. 비트 연산자

  5.5. 증감 연산자

  5.6. 조건 연산자

 

6. 조건문과 반복문

  6.1. if

  6.2. switch

  6.3. for

  6.4. while

 6.5. do-while

 

7. 배열

  7.1. 배열 선언과 초기화

  7.2. 다차원 배열

  7.3. 배열 요소 접근

  7.4. 배열의 길이

 

8. 문자열 처리

  8.1. String 클래스

  8.2. 문자열 연산 및 메서드

  8.3. StringBuilder StringBuffer 클래스

 

9. 클래스와 객체

  9.1. 클래스 선언

  9.2. 객체 생성 및 사용

  9.3. 생성자와 소멸자

  9.4. this 키워드

 

10. 상속과 인터페이스

  10.1. 클래스 상속

  10.2. 메서드 오버라이딩

  10.3. 인터페이스 선언 및 구현

  10.4. 다중 인터페이스 구현

 

11. 추상 클래스와 인터페이스

  11.1. 추상 클래스 선언 및 사용

  11.2. 추상 메서드

  11.3. 인터페이스의 활용

  11.4. 디폴트 메서드와 스태틱 메서드

 

12. 패키지와 접근 제어자

  12.1. 패키지의 정의와 사용

  12.2. import

  12.3. 접근 제어자 (public, private, protected, default (패키지 전용))

  12.4. 패키지 접근

 

13. 예외 처리

  13.1. 예외 처리 개념

  13.2. try-catch-finally

  13.3. 예외 클래스 계층 구조

  13.4. 사용자 정의 예외

 

14. 제네릭

  14.1. 제네릭 개념

  14.2. 제네릭 클래스와 인터페이스

  14.3. 제네릭 메서드

  14.4. 와일드카드

 

15. 컬렉션 프레임워크

  15.1. 컬렉션 프레임워크 개요

  15.2. List, Set, Map 인터페이스

  15.3. ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap 사용

  15.4. 컬렉션 관련 유틸리티 클래스

 

16. 함수형 프로그래밍과 람다

  16.1. 함수형 프로그래밍 개념

  16.2. 람다 표현식

  16.3. 메서드 참조

  16.4. 함수형 인터페이스

 

17. 스트림 API

  17.1. 스트림 API 개요

  17.2. 스트림 생성

  17.3. 스트림 연산 (중간 연산, 최종 연산)

  17.4. 병렬 스트림

 

18. 입출력 (I/O)

  18.1. 입출력 스트림 개념

  18.2. 바이트 스트림 (InputStream, OutputStream)

  18.3. 문자 스트림 (Reader, Writer)

  18.4. 버퍼링, 데이터 입출력 스트림

 

19. 파일과 디렉터리

  19.1. File 클래스

  19.2. 파일 및 디렉터리 생성, 삭제, 조회

  19.3. 파일 입출력

  19.4. Path Files 클래스 사용

 

20. 날짜와 시간 처리

  20.1. java.util.Datejava.util.Calendar 클래스

  20.2. java.time 패키지 (LocalDate, LocalTime, LocalDateTime)

  20.3. 날짜와 시간 연산

  20.4. 날짜와 시간 포맷팅

 

21. 자바 Reflection API

  21.1. 리플렉션 개념

  21.2. Class 클래스

  21.3. 메서드, 필드, 생성자 정보 조회

  21.4. 동적 객체 생성 및 메서드 호출

 

22. 자바 애너테이션

  22.1. 어노테이션 개념

  22.2. 기본 어노테이션

  22.3. 사용자 정의 어노테이션 생성

  22.4. 애너테이션 처리

 

23. 메모리 관리와 가비지 컬렉션

  23.1. 메모리 관리 개념

  23.2. 가비지 컬렉션 동작 원리

  23.3. 메모리 누수와 해결 방법

  23.4. 가비지 컬렉터의 종류 및 튜닝

 

24. 자바 네이티브 인터페이스 (JNI)

  24.1. JNI 개념 및 목적

  24.2. JNI 프로그래밍 방법

  24.3. C/C++과 자바 코드 연동

  24.4. JNI 라이브러리 생성 및 사용

 

25. 자바와 XML 처리

  25.1. XML 개요

  25.2. DOM 파싱

  25.3. SAX 파싱

  25.4. JAXB 사용

 

26. 자바와 JSON 처리

  26.1. JSON 개요

  26.2. JSON 파싱 및 생성 라이브러리

  26.3. JSON 객체 처리

  26.4. JSON 배열 처리

 

27. 자바와 웹 프로그래밍

  27.1. 웹 프로그래밍 개요

  27.2. HTTP 프로토콜 및 웹 서버

  27.3. 클라이언트-서버 통신

  27.4. 웹 애플리케이션 구조

 

28. 자바 서블릿

  28.1. 서블릿 개요

  28.2. 서블릿 생명주기

  28.3. 서블릿 요청 및 응답 처리

  28.4. 세션 관리

 

29. 자바 서버 페이지 (JSP)

  29.1. JSP 개요

  29.2. JSP 스크립트 요소

  29.3. JSP 액션 태그

  29.4. JSP 커스텀 태그

 

30. 자바 프레임워크 소개

  30.1. 프레임워크 개요

  30.2. 스프링 프레임워크

  30.3. 하이버네이트

  30.4. 마이바티스

 

31. 스프링 프레임워크

  31.1. 스프링 프레임워크 개요

  31.2. 스프링 IoC 컨테이너 및 빈 관리

  31.3. 스프링 AOP

  31.4. 스프링 MVC

  31.5. 스프링 데이터 및 트랜잭션 관리

 

32. 자바와 그래픽 처리

  32.1. 자바 그래픽 개요

  32.2. Java AWT (Abstract Window Toolkit)

  32.3. Java Swing

  32.4. JavaFX

 

33. 자바와 게임 개발

  33.1. 게임 개발 개요

  33.2. 자바 게임 라이브러리 소개

  33.3. 게임 루프와 애니메이션

  33.4. 충돌 감지 및 처리

 

34. 자바와 모바일 애플리케이션 개발

  34.1. 모바일 애플리케이션 개발 개요

  34.2. 안드로이드 애플리케이션 개발

  34.3. iOS 애플리케이션 개발 (Java 사용)

  34.4. 크로스 플랫폼 개발

 

35. 자바와 인공지능

  35.1. 인공지능 개요

  35.2. 자바 머신러닝 라이브러리

  35.3. 자바와 딥러닝

  35.4. 자바와 자연어 처리

 

36. 자바와 블록체인

  36.1. 블록체인 개요

  36.2. 블록체인 기술 개념

  36.3. 자바를 이용한 블록체인 구현

  36.4. 자바와 스마트 컨트랙트

 

37. 자바와 데이터베이스

  37.1. 데이터베이스 개요

  37.2. JDBC (Java Database Connectivity)

  37.3. 자바와 SQL 쿼리 실행

  37.4. 자바와 ORM (Object-Relational Mapping)

 

38. 자바의 동시성과 병렬 처리

  38.1. 동시성과 병렬 처리 개요

  38.2. 쓰레드와 쓰레드 관리

  38.3. 동기화와 락 (Lock)

  38.4. Executor 프레임워크와 ForkJoin 프레임워크

 

39. 자바와 디자인 패턴

  39.1. 디자인 패턴 개요

  39.2. 생성 패턴 (Singleton, Factory, Builder )

  39.3. 구조 패턴 (Adapter, Decorator, Proxy )

  39.4. 행위 패턴 (Observer, Strategy, State )

 

40. 자바와 네트워킹

  40.1. 네트워킹 개요

  40.2. 소켓 프로그래밍

  40.3. URL HttpURLConnection 클래스

  40.4. 자바 NIO (Non-blocking I/O)

  40.5. 웹소켓과 자바

 

41. 자바와 암호화

  41.1. 암호화 개요

  41.2. 자바에서 제공하는 암호화 라이브러리

  41.3. 대칭키 암호화와 비대칭키 암호화

  41.4. 해시 함수와 메시지 다이제스트

 

42. 기타 자바 라이브러리 및 유용한 도구

  42.1. 빌드 도구 (Maven, Gradle)

  42.2. 테스트 프레임워크 (JUnit, Mockito)

  42.3. 로깅 라이브러리 (Log4j, SLF4J)

  42.4. 코드 품질 관리 도구 (SonarQube, Checkstyle)

 

43. 자바와 웹 서비스

  43.1. 웹 서비스 개요

  43.2. SOAP 웹 서비스

  43.3. RESTful 웹 서비스

  43.4. 자바와 웹 서비스 클라이언트 구현

 

44. 자바와 마이크로서비스

  44.1. 마이크로서비스 개요

  44.2. 마이크로서비스 아키텍처

  44.3. 스프링 부트와 마이크로서비스

  44.4. 서비스 디스커버리와 로드 밸런싱

 

45. 자바와 클라우드 컴퓨팅

  45.1. 클라우드 컴퓨팅 개요

  45.2. 자바와 AWS (Amazon Web Services)

  45.3. 자바와 구글 클라우드 플랫폼

  45.4. 자바와 마이크로소프트 애저

 

46. 자바 성능 최적화

  46.1. 성능 최적화 개요

  46.2. 자바 가상 머신과 튜닝

  46.3. 코드 최적화 기법

  46.4. 프로파일링 도구 사용

반응형

댓글