본문 바로가기

개발 공부26

[Stateful vs Stateless] feat. TCP, UDP, HTTP 순서1. Stateful (상태유지)2. Stateful 예시 & 문제점3. Stateless (무상태)4. Stateless 예시 & 문제점5. 정리 ✅ Stateful(상태유지)- 서버가 클라이언트의 상태를 보존하는 방식- 일반적으로 브라우저의 쿠키나 서버의 세션 메모리에 저장됨 ✅ Stateful 통신 예시 - TCP의 3-way handshaking1. 클라이언트가 서버에 SYN을 전송하고, SYN_SENT 상태가 됨2. 서버는 SYN을 요청받고, 클라이언트에게 SYN/ACK를 전송하고, SYN_RECEIVED 상태가 됨3. 클라이언트는 SYN/ACK를 받아 ESTABLISHED 상태가 되고,    서버에게 ACK를 전송하고, 서버도 ESTABLISHED 상태가 됨4. 세션 상태가 ESTABLIS.. 2024. 10. 24.
[CLI vs GUI] feat. UX, UI 순서1. CLI란2. GUI란3. CLI vs GUI 비교4. GUI vs UI vs UX 비교 ✅ CLI(Command Line Interface)- 사용자가 다양한 텍스트 명령을 통해 OS와 직접 상호작용- 프로그래밍, 서버 관리, 시스템 관리 등과 같은 고급 작업에 유리- 복잡한 명령어와 구문 때문에 진입장벽이 높음- 더 적은 양의 RAM과 CPU 처리 시간을 가짐 ✅ GUI(Graphical User Interface)- 사용자가 아이콘과 같은 그래픽 요소를 통해 시스템과 상호작용- 전문지식이 없는 사용자의 일반적인 작업에 유리- 사용자 친화적- 더 많은 양의 RAM과 CPU 처리 시간이 필요 ✅ CLI vs GUI비교CLIGUI사용의 용이성이해하고 사용하기 어려움이해하고 사용하기 쉬움메모리 사용.. 2024. 9. 4.
[MultiValueMap] feat. HashMap, TreeMap, LinkedHashMap 순서1. HashMap, TreeMap, LinkedHashMap 특징 및 예제2. MultiValueMap 특징 및 예제 ✅ HashMap- Map의 기본 형식- Key, Value 한 쌍의 데이터를 저장함- 중복된 키 허용하지 않음- 순서를 보장하지 않음HashMap hashMap = new HashMap();hashMap.put("CCC", "first data");hashMap.put("BBB", "second data");hashMap.put("AAA", "third data");System.out.println(hashMap);>>{AAA=third data, CCC=first data, BBB=second data}  ✅ TreeMap- 이진트리 기반의 Map 형식- 데이터가 삽입될 때마다 .. 2024. 9. 2.
[다양한 코딩 스타일] feat. GNU, K&R, BSD 순서 1. 코딩 스타일 2. GNU 3. K&R 4. BSD ✅ 코딩 스타일 - 소스 코드를 작성할 때의 불문율적인 편집 규약 - 기계가 이해할 때는 동일하지만, 사람이 열람 및 유지보수를 할 때 용이하게 하기 위해 통일된 스타일의 필요성이 생겨남 - 통일되지 않고 변덕스러운 코딩 스타일을 사용할 경우, 능률이 저하되고 협업에서 혼란이 가중됨 ex) K&R 스타일을 사용하는 회사에서, BSD 스타일로 작업하여 push 한다면 해당 코드를 pull 받는 모든 사람들은 충돌 발생!! ➤ 주요 코딩 스타일 - GNU, K&R, BSD **각 코딩 스타일은 서로의 장단점이 있으며 완벽한 코딩 스타일이란 존재하지 않으므로 본인이 익숙해진 스타일이 더 좋은 스타일이라고 생각하는 우를 범하지 않도록 주의! ✅ GNU.. 2024. 1. 19.