오늘 한일
- 소수 만들기
for문을 세번 반복하여 3개의 숫자를 선택하는 모든 경우를 만든 후 세 수를 합한 수가 소수인지 for문을 이용해 검사한 후 소수 일 때만 answer에 1을 추가해주었다.
- 덧칠하기
for 문을 통해 벽의 모든 구역을 검사하였고 그 구역이 다시 칠해야되는 구역을 includes로 검사한 후 칠해주었다. 칠 했으면 롤러의 길이만큼 건너뛴후 다시 검사하였다.
- HTTP와 TCP 그리고 웹소켓
- HTTP(HyperText Transfer Protocol)는 웹에서 정보를 주고받기 위한 프로토콜이다. 인터넷 상에서 웹 브라우저와 웹 서버 간에 데이터를 전송하는 데 사용되며, 클라이언트-서버 모델을 기반으로 한다. 주요 특성으로는 무상태성이있다.
- TCP(Transmission Control Protocol)는 인터넷과 같은 네트워크에서 데이터를 신뢰성 있게 전달하기 위한 주요 프로토콜이다. TCP는 IP(Internet Protocol)와 함께 TCP/IP 프로토콜 스택을 형성하며, 네트워크에서 데이터를 전송하는 데 중요한 역할을 한다. 주요 특성으로는 연결 지향성이 있다.
- 웹소켓(WebSocket)은 웹 애플리케이션에서 실시간 양방향 통신을 가능하게 하는 프로토콜이다. 웹소켓은 HTTP와는 다르게 서버와 클라이언트 간에 지속적인 연결을 유지하며, 데이터를 빠르고 효율적으로 주고받을 수 있게 한다. 주요 특성으로는 양방향 통신이 있다.
웹소켓의 연결방법은 TCP의 연결방법 (3-way-handshake)를 닮아있다.
-웹소켓은 기본적으로 TCP 연결 위에서 작동하기 때문에, 웹소켓 연결을 시작하기 전에 TCP의 표준 연결 방법인 3-way handshake가 수행된다. 하지만 웹소켓은 이후에 추가적인 핸드셰이크 과정을 진행하여 웹소켓 특유의 연결을 완성한다.
어려웠던 점
- for문을 여러번 사용하는 다중 반복문의 경우 반복문이 중첩될 수록 성능이 크게 저하하는 것으로 알고있고 가독성이 많이 떨어져 다중 반복문을 사용하지 않고 문제를 푸는 방법을 생각해보았는데 쉽지않았다. (함수를 사용하거나 데이터 구조를 응용하여 해결할 수 있을 것 같다.)
- HTTP, TCP, 웹소켓의 특징들은 배워서 알겠지만 어느상황에서 무엇을 사용해야 할지는 아직 감이 안잡히는 것 같다.(각 프로토콜을 직접 사용해보고 구현해보면서 익숙해지면 좋을 것 같다.)
오늘의 TIP
- 이중 for문은 n * n 번 실행된다. 그래서 시간복잡도는 O(n²)로 표기한다. 이렇게 n번 반복하는 반복문이 k번 중첩되게 실행되면 n^k번 반복하게 되고 시간복잡도는 O(n^k)로 표기한다. 즉 반복문이 중첩 될 수록 시간복잡도가 크게 상승하기 때문에 성능 저하가 심해진다.
'TIL' 카테고리의 다른 글
TIL#38(옹알이(2), 트랜잭션) (0) | 2024.06.12 |
---|---|
TIL#37(기사단원의 무기, 샤딩) (0) | 2024.06.11 |
TIL#35(카드 뭉치, 풋살 온라인 팀프로젝트) (0) | 2024.06.07 |
TIL#34(2016년, 객체 지향 프로그래밍, 프로그램 언어의 다형성) (0) | 2024.06.05 |
TIL#33(명예의 전당(1), Select 모델, IOCP) (0) | 2024.06.04 |