강의

멘토링

로드맵

BEST
Programming

/

Programming Language

Solid Foundation! Starting Java Intensively Part 3 (Part 2): Sockets and File I/O

Starting with java.io, you can learn how to develop high-performance input/output systems based on NIO and NIO.2. Most importantly, the moment you master file I/O, we'll enable you to master high-performance server development as a bonus!

(5.0) 12 reviews

431 learners

  • nullnull8537
Java
Network
tcpsocket

Reviews from Early Learners

What you will learn!

  • You can perform file input/output using Java.

  • Learn about high-performance system development methods based on NIO (New I/O) and AIO (Asynchronous I/O), going beyond java.io.

  • Able to develop high-performance AIO-based TCP/IP server systems.

You will learn the essentials of high-performance AIO asynchronous file I/O and sockets.
A developer's competitiveness is only based on his or her skills. With this course, you will definitely secure a differentiated competitive edge!

Why do we go so deep into 'files' 🤔

If you finish this lecture properly
Based on a high level of understanding comparable to that of a specialist
You can utilize Java .

Various theories on file input/output

Learn in detail about the file system itself , which is covered in the operating system class . Based on this, you will be able to understand Non-blocking I/O and asynchronous I/O .

NIO-based file input/output

Learn input/output methods using NIO (New I/O) beyond traditional java.io -based file input/output. This will help you maximize your understanding of the core theories you must know for future high-performance server development .

High performance AIO

In order to develop a high-performance server, you need to use optimized methods and utilize the resources provided by the operating system. Java provides AIO (Asynchronous I/O) for this purpose, and through this class, you can understand the clear usage method and operating principles.

TCP/IP Socket Programming

It provides directions on how to develop a high-performance chat server by applying NIO and AIO. In addition, by learning related network theories, you can write code based on an understanding of the principles rather than simply utilizing them.


Learning Object


High-performance systems in operation
I want to know the principle properly
Current Developer


By having differentiated competition
As a backend developer
Job seekers who want to get a job


Just because it's a widely used language
I learned it but I don't know the essence well
Junior developer with 1~2 years of experience

Learning Roadmap 🏃🏻

The Java series, which starts with a strong focus, consists of four parts.
Separate lectures 1 and 2 are good lectures to take together to grow as a Spring backend developer 🙂

  • Part 1: Basic Grammar, Procedural Programming

  • Part 2: Object-oriented programming + data structures

  • Part 3: Writing a System Utilization Program

  • Part 4: Preparing to move to Spring Framework

  • Separate 1: Understanding of Web Infrastructure Technology and DB

  • Separate 2: SQL Advanced


Part 3 contains a lot of content that you must know to become an advanced developer, such as multi-threaded programming and synchronization techniques, CAS (Compare And Swap, Set), lock-free structure, file input/output, socket programming, etc. There is so much content covered that it is divided into upper and lower parts . The first part covers multi-threaded programming techniques in depth based on an understanding of the Java Memory Model and JVM, while the second part covers asynchronous file input/output for high-performance system development and socket programming for server development as core topics.

You will learn about NIO and AIO beyond java.io for high-performance system development and understand how to develop high-performance server systems based on these theories.

After taking this lecture...

  • You will gain a clear understanding of core concepts regarding file systems .

  • You can understand and utilize traditional file input/output techniques as well as high-performance input/output techniques based on NIO (New I/O) .

  • You can utilize AIO (Asynchronous I/O) with operating system-level support to maximize input/output efficiency.

  • You will understand the essence of sockets and be able to develop high-performance TCP/IP server systems .

Java starts off strong
This isn't just a Java course.

1⃣
A conceptual understanding of the file system is very important!


  • Before learning about file input/output, you can learn the operating system level operation structure for file processing .

  • You can understand the internal differences between Buffered I/O and Non-buffered I/O and the fundamental reasons why performance differences occur.

  • Establish a theory for understanding high-performance input/output systems beyond Java.io-based input/output.

2⃣
Asynchronous I/O techniques for developing high-performance systems


  • You will learn how to achieve high performance through asynchronous file input/output beyond traditional file input/output systems.

  • It helps you understand and apply I/O multiplexing-based input/output techniques in practice.

  • You can develop high-performance systems that rival the performance of C/C++-based applications by leveraging AIO (Asynchronous I/O) .

3⃣
Understanding TCP/IP socket programming and networks


  • Starting with the initial Echo service, we will gradually improve its functions and ultimately develop it into a high-performance AIO-based chat server system .

  • By learning the essential network theories that you must know in relation to socket programming, we help you understand them rather than simply memorize them.

  • To ensure proper practice, be aware of the specifics and differences between a typical home and single-host environment where a router is used and approach the practice with that in mind.

4⃣
Organized teaching materials and boards 📜


  • All class content is based on PPT materials, but explanations are given as if writing on a whiteboard .

  • This allows students to comprehensively understand the flow of the background and reasons for the creation of the structure, rather than just seeing one finished result .

5⃣
The goal is differentiated competitiveness and employment 💼

  • Before learning full-fledged Java programming, I would like to make it clear that this course is aimed at employment . And

    Based on the instructor's extensive teaching experience, a clear learning roadmap and required time are presented .

  • We encourage you to establish a proper study allocation and schedule from the beginning to avoid wasting time with wrong choices.

Practice environment

  • Operating System and Version (OS): Windows 11

  • Tools Used: IntelliJ IDEA 2024.2.3 (Community Edition)

  • PC specifications: Windows 11 OS and IntelliJ can run without any problems

Learning Materials

  • PPT materials used in class (provided as PDF file)

  • Complete examples and answers to essential practice problems (provided as a zip file)

Player Knowledge and Notes

  • Java Part 1-3 (Part 1) that starts with a solid foundation
    (※ Assuming you know basic grammar and OOP as well as multi-threading and synchronization)


Recommended for
these people

Who is this course right for?

  • Person who wants to develop high-performance backend systems based on Java

  • Those who understand the essence of sockets and want to develop high-performance servers immediately applicable in practice.

  • Those who genuinely understand the meaning of synchronous/asynchronous file I/O and want to definitively move beyond the beginner level.

Need to know before starting?

  • A person who understands the content covered in the '독하게 시작하는 Java Part2~3(상)' lecture.

Hello
This is

38,963

Learners

2,324

Reviews

1,125

Answers

4.9

Rating

25

Courses

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

Curriculum

All

45 lectures ∙ (9hr 15min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

12 reviews

5.0

12 reviews

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

    Reviews 31

    Average Rating 4.9

    5

    31% enrolled

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

    • 널널한 개발자
      Instructor

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

  • 강윤수님의 프로필 이미지
    강윤수

    Reviews 12

    Average Rating 4.9

    5

    100% enrolled

    중간중간 알려주시는 CS지식과 해당 지식과 연관지어 설명해주시는게 아주 도움이 됩니다.

  • ZZAMBA님의 프로필 이미지
    ZZAMBA

    Reviews 8

    Average Rating 5.0

    5

    100% enrolled

    파일 입출력을 다룰일이 별로 없어서 중요하지 않다 생각하고 살았지만 소켓도 파일이라는 점에서 매우 중요함을 깨닫게 되었습니다. 외에도 수업에서 이전에 다룬 멀티스레드와 논블로킹 비동기 방식으로 서버를 최적화할 수 있는 점도 신선하게 다가온 것 같습니다. 너무 좋은 강의였습니다!

    • 파일 입/출력은 CS이론이 집중되는 중요한 내용이 다수 포함되어 있습니다. 이미 느끼셨겠지만 그 중요성을 다시 한 번 강조 드립니다. 이러한 인식이 생겼다는 것만으로도 훌륭한 성과를 거두신 것이라는 점도 꼭 말씀드리고 싶습니다. 이제 더 넓은 시야를 갖게 되신 것 같아 강사로써 기분이 좋습니다. :)

  • 김주원님의 프로필 이미지
    김주원

    Reviews 9

    Average Rating 5.0

    5

    33% enrolled

  • SeongHun Jeong님의 프로필 이미지
    SeongHun Jeong

    Reviews 14

    Average Rating 5.0

    5

    100% enrolled

$51.70

nullnull8537's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!