Inflearn brand logo image
Inflearn brand logo image
NEW
개발 · 프로그래밍

/

프로그래밍 언어

기초 탄탄! 독하게 시작하는 Java Part 3(하) : 소켓과 파일 I/O

java.io를 시작으로 NIO 및 NIO.2 기반의 고성능 입/출력 시스템을 개발 할 수 있는 방법을 배울 수 있습니다. 무엇보다 파일 입/출력을 끝내는 순간 고성능 서버 개발까지 덤으로 끝낼 수 있도록 해드립니다!

(5.0) 수강평 6개

수강생 189명

중급자를 위해 준비한
[프로그래밍 언어, 백엔드] 강의입니다.

이런 걸 배울 수 있어요

  • Java를 이용해 파일 입/출력을 할 수 있습니다.

  • java.io를 넘어 NIO(New I/O), AIO(Asynchronous I/O) 기반 고성능 시스템 개발방법을 알 수 있습니다.

  • AIO 기반 고성능 TCP/IP 서버 시스템을 개발 할 수 있습니다.

고성능 AIO비동기 파일 입/출력과 소켓의 본질에 대해 확실하게 배울 수 있습니다.
개발자의 경쟁력은 오직 실력입니다. 이 강의로 확실히 차별화된 경쟁력을 확보하세요!

'파일'에 대해 이렇게 깊게 다루는 이유 🤔

이 강의를 제대로 끝낸다면
전공자에 비견할 수 있는 높은 이해를 바탕으로
Java를 활용 할 수 있습니다.

파일 입/출력에 대한 각종 이론

파일 시스템 그 자체에 대해 운영체제 수업에서 다루는 내용들을 상세히 배웁니다. 이를 바탕으로 Non-blocking I/O 및 비동기 입/출력에 대해 정확히 알 수 있습니다.

NIO 기반 파일 입/출력

전통적인 java.io 기반 파일 입출력을 넘어 NIO(New I/O)를 이용한 입/출력 방법을 배웁니다. 이를 통해 향후 고성능 서버 개발을 위해 반드시 알아야 할 핵심 이론에 대한 이해를 극대화 할 수 있습니다.

고성능 AIO

고성능 서버를 개발하기 위해서는 최적화된 방법을 사용하는 것은 물론 운영체제가 제공하는 자원을 활용할 수 있어야 합니다. 이를 위에 Java에서는 AIO(Asynchronous I/O)를 제공하고 있으며 본 수업 통해 확실한 사용 방법 및 작동 원리를 이해할 수 있습니다.

TCP/IP 소켓 프로그래밍

NIO 및 AIO를 적용해 고성능 채팅 서버를 어떻게 개발 할 수 있는지 방향을 제시합니다. 또한 관련 네트워크 이론을 함께 배움으로써 단순 활용이 아니라 원리 이해를 바탕으로 코드를 작성 할 수 있습니다.


학습 대상


고성능 시스템이 작동하는
원리를 제대로 알고 싶은
현직 개발자


차별화된 경쟁을 갖춰서
백엔드 개발자로
취업하고 싶은 취업 준비생


많이 쓰는 언어라고 해서
배웠지만 본질을 잘 모르는
1~2년차 주니어 개발자

학습 로드맵 🏃🏻

독하게 시작하는 Java 시리즈는 총 4개 Part 로 이루어집니다.
별도 1,2 강의는 Spring 백엔드 개발자로 성장하기 위해 함께 들으면 좋은 강의입니다 🙂

  • Part 1 : 기초적인 문법, 절차적 프로그래밍

  • Part 2 : 객체지향 프로그래밍 + 자료구조

  • Part 3 : 시스템 활용 프로그램 작성

  • Part 4 : Spring Framework으로 넘어가기 위한 준비

  • 별도 1 : 웹 인프라 기술에 대한 이해와 DB

  • 별도 2 : SQL 고급


Part 3멀티스레드 프로그래밍과 동기화 기법, CAS(Compare And Swap, Set), Lock-free 구조, 파일 입/출력, 소켓 프로그래밍 등 고급 개발자가 되기 위해 반드시 알아야 할 내용들이 다수 포함되어 있습니다. 다루는 내용이 너무 많아 상, 하편으로 구분되어 있으며 상편에서는 Java Memory Model과 JVM에 대한 이해를 바탕으로 멀티스레드 기반 프로그래밍 기법을 깊이 있게 다루고 있으며 하편에서는 고성능 시스템 개발을 위한 비동기 파일 입/출력 및 서버 개발을 위한 소켓 프로그래밍을 핵심 주제로 다룹니다.

고성능 시스템 개발을 위해 java.io를 넘어 NIO와 AIO에 대해 학습하며 이러한 이론을 바탕으로 고성능 서버 시스템을 어떻게 개발 할 수 있는지 이해할 수 있습니다.

이 강의를 듣고 나면...

  • 파일 시스템에 관한 핵심 개념을 명확히 이해할 수 있습니다.

  • 전통적인 파일 입/출력 기법은 물론 NIO(New I/O)기반 고성능 입/출력 기법을 이해하고 활용할 수 있습니다.

  • 입/출력 효율을 극대화 하기 위해 운영체제 수준의 지원을 받을 수 있는 AIO(Asynchronous I/O)를 활용할 수 있습니다.

  • 소켓의 본질에 대해 이해하고 고성능 TCP/IP 서버 시스템을 개발 할 수 있습니다.

독하게 시작하는 Java는
그냥 Java 강의가 아닙니다.

1⃣
파일 시스템에 대한 개념적 이해는 매우 중요!


  • 파일 입/출력을 배우기에 앞서 파일처리에 관한 운영체제 수준 작동 구조를 배울 수 있습니다.

  • Buffered I/O와 Non-buffered I/O의 내부적 차이를 이해하고 성능차이가 발생하는 근본적인 이유를 이해 할 수 있습니다.

  • Java.io기반 입/출력을 넘어선 고성능 입/출력 시스템을 이해하기 위한 이론확립 합니다.

2⃣
고성능 시스템으로 발전하기 위한 비동기 입/출력 기법


  • 전통적인 파일 입/출력 시스템을 넘어 비동기 파일 입/출력을 통해 높은 성능 확보하는 방법을 배울 수 있습니다.

  • I/O 멀티플렉싱 기반 입/출력 기법을 이해하고 실전에서 활용할 수 있도록 지원합니다.

  • AIO(Asynchronous I/O)를 활용해 C/C++ 기반 응용 프로그램의 성능에 필적하는 고성능 시스템을 개발할 수 있습니다.

3⃣
TCP/IP 소켓 프로그래밍과 네트워크에 대한 이해


  • 최초 Echo 서비스를 시작으로 단계적으로 기능을 개선해 최종에는 AIO 기반 고성능 채팅 서버 시스템으로 발전시킵니다.

  • 소켓 프로그래밍과 관련해 반드시 알아야 할 필수 네트워크 이론들에 대해서 학습함으로써 단순 암기가 아니라 이해 할 수 있도록 돕습니다.

  • 적절한 실습이 진행될 수 있도록 공유기가 사용되는 일반 가정 및 단일 호스트 기반 환경의 특수성과 차이에 대해 알고 실습에 임합니다.

4⃣
정리된 교육 자료와 판서 📜


  • 모든 수업 내용은 PPT자료를 기반으로 하지만 마치 화이트보드에 판서를 하는 것처럼 설명이 이어집니다.

  • 이를 통해 수강자는 완성된 하나의 결과만 보는 것이 아니라 구조가 탄생하게 된 배경과 이유 전반에 대한 흐름을 종합적으로 이해 할 수 있습니다.

5⃣
목표는 차별화된 경쟁력과 취업 💼

  • 본격적인 Java 프로그래밍을 배우기에 앞서 본 수업이 취업을 목표로 하고 있음을 명확히 알립니다. 그리고

    강사의 오랜 강의 경험을 근거로 명확한 학습로드맵과 소요시간을 제시합니다.

  • 잘못된 선택으로 시간을 낭비하는 일이 없도록 처음부터 적절한 학습 배분 및 일정을 수립하도록 유도합니다.

실습 환경

  • 운영 체제 및 버전(OS): Windows 11

  • 사용 도구: IntelliJ IDEA 2024.2.3 (Community Edition)

  • PC 사양: Windows 11 OS 및 IntelliJ가 무리 없이 작동 할 수 있는 수준

학습 자료

  • 수업에 사용된 PPT자료 (PDF파일로 제공)

  • 전체 예제 및 필수실습 문제 정답(Zip 압축 파일로 제공)

선수 지식 및 유의사항

  • '기초탄탄' 독하게 시작하는 Java Part 1~3(상)
    (※ 기초적인 문법이나 OOP는 물론 멀티스레드와 동기화에 관해 알고 있다고 가정)


이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • Java 기반 고성능 백엔드 시스템을 개발하고 싶은 분

  • 소켓의 본질을 이해하고 실무에 즉시 사용할 수 있는 고성능 서버를 개발하기를 원하는 분

  • 동기/비동기 파일 입/출력의 의미를 제대로 이해하고 초급 수준을 확실히 넘어서려는 분

선수 지식,
필요할까요?

  • 독하게 시작하는 Java Part2~3(상) 강의에서 다루는 내용을 이해하고 있는 분

안녕하세요
입니다.

33,854

수강생

1,837

수강평

1,055

답변

4.9

강의 평점

22

강의

널널한 개발자 TV 채널 주인장이자
30년 넘게 IT기술의 바다를 항해하고 있는 개발자 입니다.  반갑습니다. ^^

 

커리큘럼

전체

45개 ∙ (9시간 15분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

6개

5.0

6개의 수강평

  • 더블지님의 프로필 이미지
    더블지

    수강평 25

    평균 평점 4.9

    5

    31% 수강 후 작성

    자바 + cs 이론까지 같이 공부할 수 있는 유일한 강의

    • 널널한 개발자
      지식공유자

      첫 번째 수강평 고맙습니다. 새 강의를 오픈하면 첫 평가를 정말 목마르게 기다리게 되는 것 같습니다. 게다가 좋게 봐주셔서 마음이 편안해졌습니다. :)

  • 유경훈님의 프로필 이미지
    유경훈

    수강평 5

    평균 평점 5.0

    5

    100% 수강 후 작성

    깊이 있는 강의 감사드립니다. 이해에 큰 도움 되었습니다.

    • RDBMS 대략적인 예정 개강 날짜 있을까요?

    • 널널한 개발자
      지식공유자

      좋은 평가와 피드백 고맙습니다. 다행히 수업이 도움이 된 것 같네요. RDBMS 강의는 현재 유튜브에서 진행하고 있습니다. 인프런에도 올리게 될 것인지는 아직 결정된 바 없습니다. 참고하시기 바랍니다. :)

  • richer.4p님의 프로필 이미지
    richer.4p

    수강평 3

    평균 평점 5.0

    5

    60% 수강 후 작성

  • UHO님의 프로필 이미지
    UHO

    수강평 5

    평균 평점 5.0

    5

    60% 수강 후 작성

  • Estados Unidos님의 프로필 이미지
    Estados Unidos

    수강평 25

    평균 평점 5.0

    5

    60% 수강 후 작성

    널널한 개발자님의 다른 강의

    지식공유자님의 다른 강의를 만나보세요!

    비슷한 강의

    같은 분야의 다른 강의를 만나보세요!