2022 Masters Course/Web Backend Course

2022 마스터즈 코스(백엔드) 56일차 회고(2022. 3. 28.) - "웹 백엔드 과정 마지막 주차"

ikjo 2022. 3. 28. 21:16

해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :)

 

수강 회고

어느덧 오늘로 웹 백엔드 과정의 7주차 즉, 마지막 주차의 과정이 시작되었다. 매주 월요일마다 주말에 수면 패턴이 뒤바뀌어 피로함에 시달렸었는데 지난 주말에는 프로그래밍 학습은 잠시 미루어 두고 오직 쉬는데에만 집중하여 한결 나은 컨디션으로 과정에 임할 수 있었다.

 

지난 CS10 과정에서는 설연휴가 존재하여 중간에 재충전을 할 수 있는 시간이 있었지만 이번 웹 백엔드 과정의 경우에는 7주간 매주 새로운 미션과 코드 리뷰로 인해 현재 다소 지쳐있는 상태이다. 하지만 웹 백엔드 과정의 마지막 주차인 만큼 남은 기간(이번 한 주간) 최선을 다해 임하고자 한다. 아울러 페어인 Sammy와의 페어 프로그래밍도 유종의 미를 거두기 위해 페어와 협력하는데 집중하여 서로간 만족스러운 결과물을 낼 수 있도록 노력해야겠다는 생각이 들었다.

 

 

학습 회고

  • 웹 서버 관련 미션 과제 풀이
    • 페어와 zoom 회의실에서 학습

 

소켓(Socket) close 메서드

자바에서 소켓은 프로세스간 통신을 담당하며, InputStream과 OutputStream을 통해 프로세스간의 통신(입출력)이 이루어진다. 이때 close 메서드를 사용하면 Socket을 닫을 수 있는데, 이미 한 번 close에 의해 닫혀진 소켓은 더이상 네트워크 사용이 불가능해진다. 즉, 재연결되는 것이 불가능하며 새로운 소켓을 만들어 주어야 한다.

 

또한 소켓을 닫으면 해당 소켓의 InputStream과 OutputStream 역시 닫히게 되며 이 외에도 해당 소켓과 연관된 채널이 있다면 해당 채널 역시 닫히게 된다. 하지만 항상 해당 소켓을 직접적으로 닫아줄 필요는 없다. 소켓에서 사용되는 InputStream 또는 OutputStream을 close 해준다면 해당 소켓 역시 닫히게 된다.

 

예를 들어 다음과 같이 try-with-resources문을 사용하는 경우에는 별도로 해당 소켓에 대해 close를 해줄 필요 없다.

 

    public void run() {

        Socket connection;

        try (InputStream in = connection.getInputStream(); OutputStream out = connection.getOutputStream()) {
            BufferedReader br = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8));
            DataOutputStream dos = new DataOutputStream(out);

			// ... 생략 ...

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

 

try-with-resources문에서 try () 안에 선언된 객체들은 try 구문이 종료될 때 자동으로 자원이 해제(반납)되는데, 특히 해당 객체가 AutoCloseable을 구현했다면 try 구문이 종료될 때 해당 객체의 close() 메서드를 호출해 준다. 즉, InputStream과 OutputStream의 close 메서드가 자동으로 호출되므로 별도로 해당 소켓에 대해 close를 해줄 필요가 없는 것이다.

 

 

좋았던 점

  • 오늘 평상시에 살까 말까 고민만 하고있었던 '한 권으로 읽는 컴퓨터 구조와 프로그래밍'이라는 책을 구입하게 되었는데, 오늘 주문하자마자 오늘 바로 도착해서 기분이 좋았습니다. (그런데 앞으로 읽을 시간이 얼마나 있을지는 의문이긴 합니다. 😅)

 

 

아쉬웠던 점

  • 저번주에 컨디션이 매우 안 좋았기에 이번 주말에는 쉬는데 집중했습니다. 물론 주말간 푹 쉰 덕에 오늘 한결 컨디션이 좋았지만 한편 또 막상 너무 쉬었나라는 생각도 듭니다. 🤣

 

 

이전 보다 개선되었던 점

  • 주말간 프로그래밍 학습을 안하고 쉬는데 집중했더니 저번주 월요일 대비 이번주 월요일인 오늘은 한결 더 좋은 컨디션으로 페어 프로그래밍에 임할 수 있었습니다. 🐱‍🏍