F-Lab 직군별 네트워킹 행사 후기
지난 3월 19일, 같은 직군의 개발자들과 네트워킹을 할 수 있는 ‘Connecting the Dots’ 행사에 참여했다. 행사의 타이틀인 ‘Connecting the Dots’는 스티브 잡스가 Stanford 대학교에서 발표했던 연설의 내용으로, 우리의 인생에 있어서 처음에는 관련성이 없는 일들이 시간이 지나면서 하나의 연장선상에 있는 일들처럼 연...
지난 3월 19일, 같은 직군의 개발자들과 네트워킹을 할 수 있는 ‘Connecting the Dots’ 행사에 참여했다. 행사의 타이틀인 ‘Connecting the Dots’는 스티브 잡스가 Stanford 대학교에서 발표했던 연설의 내용으로, 우리의 인생에 있어서 처음에는 관련성이 없는 일들이 시간이 지나면서 하나의 연장선상에 있는 일들처럼 연...
이번 포스팅은 인덱스 설계에 필요한 밑바탕 지식을 습득하는 걸 목적으로 한다. 이 글에서 별도로 RDBMS를 통틀어 지칭하거나 특정 RDBMS 종류를 언급하지 않으면 모두 MySQL를 지칭하는 것이라 생각하면 된다. 1. 인덱스를 사용해야 하는 이유 RDBMS는 데이터를 저장하고 조회하기 위해 사용하는 소프트웨어이다. 이런 RDBMS는 쇼핑몰이나 ...
최근 Don’t use booleans라는 글을 읽고, 저자와 같은 고민을 해볼 필요가 있다는 생각이 들어 작성하게 되었다. 해당 글에서는 함수 파라미터에 boolean을 사용하는 것이 코드 가독성과 유지보수성에 얼마나 부정적인 영향을 미치는지 이야기하며 열거형을 대안으로 제안하고 있다. 나도 boolean 파라미터를 사용할 때 유사한 문제에 직면할...
지난 1월, 다른 개발자들과 네트워킹하는 기회를 얻으려 참여한 F-Lab의 Dev Club에서 열린 네트워킹 행사가 있었다. 나는 Dev Club에 합류한 이유가 네트워킹 기회를 얻고자 함이었기 때문에 참여하게 되었다. 막 바빠지던 시기라 참여할지 말지 고민했었는데, 상상했던 것보다 훨씬 다양한 개발자 분들과 좋은 네트워킹을 할 수 있었다. ...
1. OSI 모델 OSI 모델은 국제 표준화 기구(International Organization for Standardzation)에서 만든 네트워크 참조 모델이다. 통신 단계를 7개의 계층으로 나누는데, 최하위 계층에서 최상위 계층 순으로 각각 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층이다. ...
이번에 살펴볼 개념은 크게 세 가지이다. 바로 통신 과정에서 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미하는 프로토콜, 통신이 일어나는 구조를 계층화한 네트워크 참조 모델, 통신 과정에서 이루어지는 캡슐화(역캡슐화)이다. 1. 프로토콜 현대 인터넷에서 호스트 간 메세지를 교환하는 방법으로 사용되는 패킷 교환 방식은 택배를 주고 받는 ...
허브를 이용하는 호스트 간 통신에는 반이중 모드와 브로드캐스팅으로 인한 문제가 있다. 이 두 문제는 허브를 사용하면서 생기는 문제의 근본적인 것이여서 없앤다면 문제가 사라질 것이다. 그를 위해 만들어진 네트워크 장비가 스위치이다. 스위치는 전이중 모드를 지원하고 수신지 호스트가 연결된 포트로만 신호를 내보낸다. 스위치가 전달받은 신호를 원하는...
허브는 물리 계층에서 여러 대의 호스트를 연결하는 장비이다. 그래서 통신 매체를 통해 송수신되는 메세지가 다른 호스트에게 전달되는 과정에서 허브를 거쳐가곤 한다. 하나 짚고 가야 할게 있는데, 물리 계층에는 주소 개념이 없다는 점이다. 송수신지를 특정하려면 데이터 링크 계층까지 가야 한다. 여기에서는 단순히 연결과 송수신만 하고 정보를 변경하거나 ...
이더넷(Ethernet)은 현대 LAN, 특히 유선 LAN 환경에서 가장 대중적으로 사용되는 기술이다. 그리고 물리 계층과 데이터 링크 계층에서 공통적으로 사용되며 두 계층이 서로 강하게 연관되는데 원인이 된다. 두 대의 PC가 정보를 주고 받으려면 어떤 전제가 필요할까? 케이블이나 와이파이같은 통신 매체가 필요하고 그 통신 매체를 통해 정보를 송수...
💡 제네릭에 대해 설명해주시고, 왜 쓰는지 알려주세요. 제네릭은 자바에서 타입(type) 안정성을 제공하고, 캐스팅(casting) 문제를 줄이기 위해 사용하는 프로그래밍 기법입니다. 클래스, 인터페이스, 또는 메소드를 정의할 때 타입을 파라미터로 받을 수 있게 해서, 다양한 타입의 객체들을 다룰 수 있게 해줍니다. 예를 들어, List<E&g...