강의

멘토링

로드맵

Inflearn brand logo image
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) 11 reviews

371 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

37,006

Learners

2,150

Reviews

1,098

Answers

4.9

Rating

24

Courses

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

Curriculum

All

45 lectures ∙ (9hr 15min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

11 reviews

5.0

11 reviews

  • twoj님의 프로필 이미지
    twoj

    Reviews 28

    Average Rating 4.9

    5

    31% enrolled

    Khóa học duy nhất vừa học được Java + lý thuyết CS

    • nullnull8537
      Instructor

      Cảm ơn bạn vì đánh giá đầu tiên về khóa học. Khi mở khóa học mới, tôi thấy mình thực sự mong ngóng đánh giá đầu tiên. Hơn nữa, việc bạn nhìn nhận tốt khiến tôi cảm thấy lòng mình thật nhẹ nhõm. :)

  • rksidksrksi님의 프로필 이미지
    rksidksrksi

    Reviews 7

    Average Rating 5.0

    5

    100% enrolled

    Tôi từng nghĩ rằng xử lý input/output file không quan trọng vì ít khi phải sử dụng, nhưng đã nhận ra rằng nó rất quan trọng khi biết rằng socket cũng là file. Ngoài ra, việc có thể tối ưu hóa server bằng cách sử dụng multithread và phương thức bất đồng bộ non-blocking mà đã học trong bài trước cũng thật mới mẻ. Đây thực sự là một bài giảng tuyệt vời!

    • nullnull8537
      Instructor

      Nhập/xuất file chứa nhiều nội dung quan trọng tập trung vào lý thuyết CS. Như bạn đã cảm nhận được, tôi muốn nhấn mạnh lại tầm quan trọng của nó một lần nữa. Chỉ việc có được nhận thức này thôi cũng đã là một thành tựu tuyệt vời rồi, điều này tôi cũng muốn nhấn mạnh. Giờ đây có vẻ như bạn đã có được tầm nhìn rộng hơn, với tư cách là giảng viên tôi cảm thấy rất vui. :)

  • jw12님의 프로필 이미지
    jw12

    Reviews 9

    Average Rating 5.0

    5

    33% enrolled

    • nullnull8537
      Instructor

      Cảm ơn bạn đã đánh giá tốt. :)

  • tjdgns55063964님의 프로필 이미지
    tjdgns55063964

    Reviews 14

    Average Rating 5.0

    5

    100% enrolled

    • nullnull8537
      Instructor

      Cảm ơn bạn đã đánh giá tốt. :)

  • aceoftop1975님의 프로필 이미지
    aceoftop1975

    Reviews 95

    Average Rating 5.0

    5

    100% enrolled

    (25/08/02/thứ 7 13:30) Nghe bài giảng của anh Neolneol, những nội dung về đồng bộ hóa / suy nghĩ về lỗi bất thường (ngắt kết nối cáp LAN) / context switching thực sự rất thấm đối với tôi. Tôi luôn nhận được rất nhiều sự giúp đỡ từ tất cả các bài giảng. Cảm ơn anh đã tạo ra những bài giảng hay như vậy.

    • nullnull8537
      Instructor

      Vì bạn đã biết về mạng và socket rồi nên tôi nghĩ chỉ cần suy nghĩ về những điểm khác biệt trong môi trường Java là đủ. Luôn cảm ơn bạn. 😊

$51.70

nullnull8537's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!