새로운 내용을 공부할 때
새로운 내용의 공부를 시작할 때 용어의 정의를 이해하지 못하거나 정확하게 알지 못한다면 그 용어가 포함된 문장을 이해하지 못합니다.
작은 단어 하나가 내용을 이해하지 못하게 하기 때문에 용어를 정확하게 이해하는 것이 중요합니다.
6월 4주차 회고 및 TIL
오늘은 6월 4주차 회고와 TIL을 정리해보려고 합니다.
학습 내용 정리
오늘 네트워크와 동기와 비동기에 대해서 학습을 했습니다.
출근 지하철과 퇴근 지하철 사이에 개발 유투브를 보고 난 후 정리입니다.
동기식 방식은 손님과 종업원의 방식이라고 생각합니다.
Waiter waiter = new Waiter();
Person person = new Person();
// 손님이 주문을 하기까지 대기합니다.
waiter.wait();
// 손님이 주문을 하면 주문을 받습니다.
waiter.takeOrder(person.order());
// 손님이 주문이 끝날때면 그때 주방에 주문을 합니다.
waiter.orderDelivery(kitchen);
비동기 방식은 종업원과 주방의 방식이라고 생각합니다.
Waiter waiter = new Waiter();
Kitchen kitchen = new Kitchen();
// 웨이터는 주방에 주문을 전달합니다.
waiter.orderDeliveryBy(kitchen);
// 5분 간격으로 주문을 확인합니다.
while(true){
waiter.checkOrder();
waiter.wait(5min);
}
동기식 방식은 응답이 오기까지 대기를 하지만, 비동기는 응답을 기다리지 않고 주기적으로 확인하는 방식입니다.
비동기 방식도 결국은 주문이 나왔는지 확인을 해야합니다.
- 주기적으로 확인한다.
- 주방에서 알려준다.
주기적으로 확인하는 방법은 웨이터가 힘들어합니다.
대안으로 주방에서 주문을 모아서 완성이 되면 웨이터에게 소리를 질러 알려줍니다.
이러한 방식을 사용하여 처리를 할 수 있습니다.
네트워크 통신
네트워크에 대해서 학습을 꾸준히 하지만, 실제 업무에서는 해당 정보를 활용하기 어렵다 보니 자주 까먹습니다.
네트워크 통신을 구현하기 위해서 랜선부터 어플리케이션까지 모든 기능을 하나의 객체에 구현하는 방식은 유지보수도 어렵고 기능 추가도 어렵기 때문에 기능별로 나누어 구현을 하는 방식을 사용한게 OSI 7계층입니다.
프로토콜이 필요한 이유는 네트워크 망을 구축하여 통신하기 위해서는 약속과 규칙이 있어야 빠르게 전달할 수 있고 연결이 가능합니다.
각 계층 마다 특정한 기능을 담당하기 때문에 주요 프로토콜을 알아야합니다.
분명 7계층을 6개월마다 공부하는거 같은데 매번 볼때마다 새롭게 느껴지는건 뭘까요… :(
주간 회고
기간 : 2024-06-19 ~ 2024-06-25
이번 주는 출퇴근 시간과 점심 시간까지 최대한 활용하면서 학습을 했습니다.
정말 열심히 했다고 생각했는데 왜? 그리고 문제가 발생한다면 이 방식의 장단점은? 에 대해서 생각을 하지 않고
단순히 어떤 일이 발생할 수 있고, 해결 방법이 이런 게 있다더라 까지만 했습니다.
완벽한 해결 방법은 없는데 단순히 주어진 답변을 외웠다는 걸 느끼게 되어서 다행입니다.
그걸 느끼게 된 건 해시 충돌이 무엇이고, 어떤 해결 방법이 있다. 까지만 학습을 했습니다.
멘토링을 받으면서 그러면 이런 상황일 때는 어떤 해결 방법을 사용할 것인가? 에 대한 답변을 하지 못했습니다.
단순히 상황이 무엇이고, 해결 방법이 무엇이다 라는 학습 방법은 도움이 되지 않다는 걸 느꼈습니다.
실무에서는 제가 판단하고 해결 방법을 선택할 줄 알아야 하는데 해결 방법의 선택 이유까지도 학습해야겠습니다.
댓글남기기