강의

멘토링

커뮤니티

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) 13 reviews

437 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

39,201

Learners

2,383

Reviews

1,129

Answers

4.9

Rating

25

Courses

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

Curriculum

All

45 lectures ∙ (9hr 15min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

13 reviews

5.0

13 reviews

  • twoj님의 프로필 이미지
    twoj

    Reviews 31

    Average Rating 4.9

    5

    31% enrolled

    The only lecture to study Java + CS theory together

    • nullnull8537
      Instructor

      Thank you for the first course review. When I launch a new course, I feel like I truly thirst for the first review. Moreover, seeing that you reviewed it favorably has put my mind at ease. :)

  • cheetos님의 프로필 이미지
    cheetos

    Reviews 12

    Average Rating 4.9

    5

    100% enrolled

    The CS knowledge you share intermittently and your explanations connecting it to the relevant concepts are very helpful.

  • rksidksrksi님의 프로필 이미지
    rksidksrksi

    Reviews 9

    Average Rating 5.0

    5

    100% enrolled

    I thought file I/O wasn't very important since I rarely dealt with it, but I came to realize how crucial it is from the perspective that sockets are also files. Additionally, it was refreshing to learn how servers can be optimized using multithreading and non-blocking asynchronous methods that were covered earlier in the class. It was such a great lecture!

    • nullnull8537
      Instructor

      File input/output contains numerous important concepts where CS theory is concentrated. You've probably already felt this, but I want to emphasize its importance once again. I also want to make sure to tell you that just having this awareness is already a great achievement. It seems like you now have a broader perspective, which makes me happy as an instructor. :)

  • jw12님의 프로필 이미지
    jw12

    Reviews 9

    Average Rating 5.0

    5

    33% enrolled

  • tjdgns55063964님의 프로필 이미지
    tjdgns55063964

    Reviews 15

    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!