2022 Masters Course/Web Backend Course

2022 마스터즈 코스(백엔드) 52일차 회고(2022. 3. 22.) - "확증편향 유의"

ikjo 2022. 3. 22. 22:02

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

 

수강 회고

오늘은 어제에 이어 페어 Sammy와 함께 웹 서버 미션을 진행하였다. 오늘은 미션 과제를 수행하면서 기존 일부 코드(미션에서 최초에 주어진 코드)를 리팩토링하는 시간을 가졌고 리팩토링된 코드 로직이 이전과 동일하는 기능을 수행하는지 검증이 필요한 상황이었다. 결론적으로 이를 위해 테스트 코드를 작성하여 이를 통해 검증을 수행할 수 있었다.

 

하지만 이 과정에서 페어와 "이게 맞나, 틀리나"를 논할 때 나는 기존 코드(메서드)의 기능이 명확하게 이해가 되지 않은 상태였는데, 당시 다소 나만의 "확증 편향"에 있었던 것 같다. 이로 인해 다소 페어 프로그래밍을 할 때 약간의 혼선이 있었는데 어떤 것을 논하기에 앞서 내가 해당 부분을 제대로 이해하고 있는지를 제대로 점검해봐야 할 필요성을 느꼈다.

 

 

학습 회고

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

 

웹 서버(Web Server)

웹 서버의 가장 중요한 기능은 클라이언트로부터 HTTP 요청을 받아들이고 HTML, CSS, JavaScript 등 정적(static)인 데이터 또는 WAS(Web Application Server)와 통신해서 얻은 동적인 데이터 HTTP 응답으로 클라이언트에 전달하는 것이다. 이때 가장 많이 사용되는 웹 서버 프로그램으로는 Apache, Nginx 등이 있다. 

 

WAS(Web Application Server)

WAS는 일종의 미들웨어(MiddleWare)로 웹 서버의 기능도 기본적으로 제공하지만 프로그래밍(자바 등) 실행 환경에서 데이터베이스와 연동하여 여러 개의 트랜잭션을 관리하고 각종 요청들을 처리하는 비즈니스 로직을 수행함으로써 동적인 기능(데이터)을 제공한다. 이때 가장 많이 사용되는 WAS 프로그램으로는 Tomcat 등이 있으며 자바를 이용하여 작성된 웹 애플리케이션은 주로 Tomcat을 통해 실행된다.

 

이미지 출처 : https://www.researchgate.net/figure/A-Typical-3-Tier-Server-Architecture-Tier-1-Web-Server-Tier-2-Application-Server-Tier_fig1_221147997

 

웹 서버 vs WAS

웹 서버는 상대적으로 WAS 보다 간단한 구조이며 WAS도 보통 자체적으로 웹 서버 기능을 내장하고 있다. 현재는 WAS가 가지고 있는 웹 서버도 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없지만 규모가 커질수록 또한 서버의 수가 여러 대일수록 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성 때문에 웹 서버와 WAS를 분리한다.

이때 WAS에서 동작하는 프로그램이 오류가 나서 WAS 자체에 문제가 발생하면 WAS를 재시작해야 되는데, WAS 앞 단에 웹 서버를 두어 클라이언트가 해당 WAS를 이용하지 못하도록 하고 WAS 를 재시작하면 해당 웹 애플리케이션을 사용하는 클라이언트는 WAS의 문제가 발생하였는지를 모르고 이용할 수 있다. 이러한 처리를 장애 극복 기능이라고 하며 대용량 웹 애플리케이션에서 무중단으로 운영하기 위해 상당히 중요한 기능이다.

 

 

좋았던 점

  • 오늘 오후에 Sammy와 페어 프로그래밍 시작하기 전 갑작스레 휴식 시간 30분이 추가적으로 발생했는데 이 덕분에 날씨 좋은 날 밖에서 커피도 테이크아웃하고 산책도 할 수 있어서 힐링(?)되었습니다. ✨

 

 

아쉬웠던 점

  • 요즘따라 식사 후에 간식으로 과자를 많이 먹어 다소 속이 더부룩한데 과거 위염을 겪고도 아직 식욕(?)을 제어하지 못하는 내 자신에 대해 "과자를 먹지 말걸"하는 아쉬움이 남습니다. 😂

 

 

이전 보다 개선되었던 점

  • 페어와 프로그래밍을 하면서 적정 시간까지만 딱 프로그래밍하고 그 이후의 시간은 개인 시간을 가짐으로써 한결 더 나은 시간 관리를 할 수 있었습니다. 🥂