분류 전체보기(408)
-
(TIL) 20220410, 소켓 프로그래밍
🏴Facts(한 것) TCP/UDP 소켓 프로그래밍 🏴Findings(배운 것) golang 으로 간단한 TCP, UDP 예제를 만들어 보았다. TCP는 handshake를 통해서 클라이언트와 서버가 연결이 되어야 하지만 UDP는 연결이 되지 않아도 서버, 클라이언트 데이터 전송을 할 수 있다. 이전에 강타입에 대해서 포스팅 한 적이 있다. 강 타입 언어 (vs 약 타입 언어) 강 타입 언어와 약 타입 언어를 다들 어디선가 한 번쯤 들어봤을 것이다. (안 들어 봤어? 그럼 지금 들어봐~) 📕강약약강인가요? 얼추 비슷하다 라고 말하고 싶지만 그런건 아니고, 이 두 언어 형 mirrorofcode.tistory.com 이번에 과제를 진행하면서 강타입 언어의 대표주자인 golang을 사용했다..
2022.04.11 -
(TIL) 20220331
🏴Facts(한 것) 객체지향의 사실과 오해 다시 읽기 네트워크 수업 듣기 운영체제 수업 듣기 🏴Findings(배운 것) 객체지향에 갓 입문한 사람들이 가장 쉽게 빠지는 함정은 상태를 중심으로 객체를 바라보는 것이다. 객체는 행동으로 인해서 상태가 결정되는 것이지, 필요한 상태로 행동이 결정되는 것이 아니다. 그렇기 때문에 역할, 책임, 협력이라는 객체의 본질을 이용하여 책임 - 주도 설계를 해야 한다. 객체지향 애플리케이션의 아름다움을 결정하는 것이 협력이라면 협력이 얼마나 조화를 이루는지를 결정하는 것은 객체다. 결국 협력의 품질을 결정하는 것은 객체의 품질이다. 객체의 품질이 좋아야 품질이 좋은 객체 지향 설계를 할 수 있는 것이다. 그럼 품질이 좋은 객체란 뭘까? 어떤 특성을 ..
2022.04.01 -
프로그래머의 뇌 서평
"훌륭한 프로그래머가 알아야 할 인지과학의 모든 것"이라는 표지의 문장이 책을 대변하고 있다. 이 책은 단순히 문제를 바라보는 시각에 대해서 얘기하는 것에 그치지 않고, 이를 인지과학적 관점에서 바라본다. 책에서는 코드를 인지하는 인지과학적 관점에서 우리의 프로그래밍에 어떻게 인지과학이 적용되는지, 어떻게 하면 복잡한 코드에 대해 깊이 있게 이해할 수 있는지 등에 대해 소개하고 있다. 🏴인상 깊었던 것 -인지적 관점에서의 코드를 바라볼 때 생기는 문제- 코드를 읽을 때 혼란이 생기는 이유는 지식 부족, 쉽게 찾을 수 있는 정보의 부족, 두뇌의 처리 능력의 부족, 이렇게 세 가지다 - 13p 지식의 부족은 *LTM의 문제이고, 정보의 부족은 *STM의 문제이며, 처리 능력의 부족은 작업 기억 공간..
2022.03.30 -
(TIL) 20220329, Persistent/ Non-Persistant HTTP
🏴Facts(한 것) 백준 알고리즘 풀기 네트워크 수업 듣기 운영체제 책 읽고 수업듣기 네트워크 과제 하기 오전 운동 🏴Findings(배운 것) HTTP connection에는 두가지가 있다. 하나는 Non-persistent HTTP, 다른 하나는 persistent HTTP. Non-persistent HTTP 는 최대 한 개의 대상에 대해서 한 개의 TCP 연결을 한다. 이 말은 10개의 파일을 다운로드 받는다고 생각하면, TCP 연결이 생성되었다가 끊어졌다를 10번 반복한다는 뜻이다. Persistent HTTP는 여러개의 대상에 대해서 한개의 TCP 연결을 한다. 위의 예와는 반대로 10개의 파일을 다운받는, 100개를 받든, TCP 연결/끊김은 한 번이다. 그럼 뭐가 더 좋..
2022.03.30 -
(TIL) 20220328, @Override
🏴Facts(한 것) 백준 알고리즘 풀기 코어 자바9 읽기 네트워크 과제 하기 오전 운동 🏴Findings(배운 것) 를 읽는데, 생성자 오버로딩 개념이 나왔다. 갑자기 Spring에서 사용하는 @Override는 어떨 때 쓰는건지 자세히 알아보고 싶어서 공식문서를 찾아봤다. (둘은 아무 관련 없다.) 스프링 공식문서에 나오는 Method Override는 아래와 같이 정의되어 있다. " representing the override of a method on a managed object by the IoC container." 메서드를 재정의하는 어노테이션인 것이다. 그럼 그냥 재정의하면 되지 왜 어노테이션이 필요할까? 아래의 코드를 확인해보자. public class Hellowo..
2022.03.29 -
(TIL) 20220326, 라인 코테 후기, agile process
🏴Facts(한 것) 라인 코딩테스트 agile 방법론에 대해서 조사 UML 1.x 버전과 2.x 버전의 차이에 대해서 조사 🏴Findings(배운 것) 학교 과제를 통해서 애자일 방법론이 뭔지, UML은 뭔지에 대해서 조사했다. 그러던 와중 애자일 선언에 대해서 알게되었고, 애자일 선언을 보면 애자일 방법론이 어떤 것인지 한번에 알 수 있다. 개인과 개인간의 상호작용이 프로세스 및 툴보다 우선시 되어야 한다. 작동하는 소프트웨어가 포괄적인 문서보다 우선시 되어야 한다. 고객과의 협업이 계약 협상보다 우선시 되어야 한다. 변화에 대응하는 것이 계획을 따르는 것보다 우선시 되어야 한다. 그만큼 변화에 변화를 거듭하면서 개발에 임하는 그 자세를 알 수 있다. 빠르고 신속하며 점진적인 개발을..
2022.03.27