본문 바로가기

기타 개발 스킬

(6)
Protocol Buffers Language Guide (휘리릭 읽는 프로토콜 버퍼 문법 및 작성 시 유의 사항, 이것만 알면 .proto 파일을 이해할 수 있다?) Protocol Buffer를 사용한다면, .proto 파일에 쓰이는 문법을 알고 있어야 한다. 그래야 시행착오를 덜 겪고, 원하는 포맷으로 적절하게 이용할 수 있을 것이다. * 이 포스트는 protocol buffer 공식 문서에 나오는 "Language Guide(proto3)"를 보고 정리한 내용이다. (참고로 번역한 것이 아니라 공부하면서 주의해야할 것들만 정리한 것이라 모든 내용을 포함하고 있지 않는다. 추가적으로 이 포스트의 목적은 "휘리릭"이다. 빨리 필요한 것들만 읽고 사용하는데 목적이 있다.) Protocol buffer(proto3) 문법 및 작성시 유의 사항 - 어떤 문법(proto2, Proto3)을 사용할 지는 proto파일의 첫 줄에 있어야하고 비어있으면 안된다. 주석 또한 있으..
객체 지향의 사실과 오해 리뷰 및 정리(이론은 넣어둬. 좁은 시야가 아닌 넓은 시야로 보는 객체 지향) 어디 가서 객체 지향 아는 척하지 말아야지 "객체 지향의 사실과 오해"라는 책을 읽고 쓰는 독후감 같은 포스트다. 객체 지향에 대해서는 많이들 알고 있고, 필자 역시도 충분히 무엇인가에 대해 알고 있다고 생각했다. 심지어 신입 사원 면접에서도 너무나 기본적으로 묻는 질문이라고 여겨 면접 관련 포스트도 썼었다. 그런데 이 책을 읽고 객체 지향에 대해서 다시 한번 잘 못하고 있던 것에 대한 반성을 했고, 한 편으로는 약간 더 시야가 넓어지는 느낌, 깨달음도 얻었다. 이 포스트를 읽고 책을 읽으면 좋을 듯하다(?) 객체 지향적으로 접근하기 객체 지향이라고 하면 위 그림과 같은 것들이 떠오를 것이다. 이론적인 것들 말이다. ex) 객체 지향 = 클래스 이론이 필요할 때도 있겠지만 실무에서는 실제로 객체 지향적인..
Deploy Springboot on heroku (히로쿠에 스프링부트 애플리케이션 배포하는 방법, 그대로 따라하면 5분만에 배포 가능!) 스프링부트 히로쿠에 배포하기 Spring cloud config를 공부하던 중에 Git의 webhook 기능을 써보고 싶었다. webhook 기능을 사용하려면 로컬 서버가 아닌 원격에 서버를 띄워야 한다(?)는 글을 보고 급하게 배포하는 방법을 찾아보고 정리하기로 했다. 무조건 원격이어야 하는지는 아직 확실하지 않지만 겸사겸사 배포를 한다. 예전에 개인프로젝트를 할 때는 AWS에 무료 인스턴스를 생성해서 했었다. 1년간 무료로 제공해주는 것을 사용했었는데 AWS에 등록한 카드 결제가 한번 이루어진 이후로 무서워서 heroku의 무료 서버를 이용해본다. 히로쿠 배포 가이드 따라하기 1. 히로쿠(heroku) 사이트에 가입을 한다. 오른쪽 상단에 sign up을 누르면 나오는 화면인데 특별한 것 없이 간단한..
HTTP Header 정리, 각 Http Header가 갖는 의미를 알아야 Http를 배운 것이다. HTTP Header 정리를 하는 이유 KOCW의 "컴퓨터 네트워크 - 한양대학교 이석복 교수님" 강의 중에 이런 표현이 있다."TCP를 이해하려면 TCP Header를 이해하면 된다.""UDP를 이해하려면 UDP Header를 이해하면 된다."실제로 토씨 하나 안 틀리고 위와 같이 말씀하신 것은 아니지만 비슷한 문장(맥락)이었다.결국, 어떤 프로토콜을 이해하려면 프로토콜의 헤더만 알면 된다는 얘기었다.왜 그럴까?특정 프로토콜의 헤더의 내용은 특정 프로토콜의 기능을 제공하기 위해 담고 있는 최소한의 정보기 때문이다.헤더에 그 프로토콜에 불필요한 내용을 담으면 네트워크로 전송되는 데이터의 크기가 커져서 빠른 전송이 불가능하기 때문에 프로토콜을 설계할 때부터 꼭 필요한 내용만 담아야 하고, 모든 기능이 표현..
네트워크 공부하기 전 인터넷이 어떻게 생겨먹었는지 알아보는 네트워크 기초(5분만에 보는 최소한의 네트워크 구조) 인터넷과 네트워크 구성 이 포스트는 그냥 잘 만든 프레임워크에서, 잘 만든 라이브러리를 이용하여 개발하는 필자와 같은 사람이 네트워크에 아주 작은 관심을 갖게되어 개발에 약간이나 도움이 될만한 기초적인 내용을 정리한 포스트다.사실 명확하게 "개발에 도움이 된다!" 고 말할 수는 없겠지만 요즘 개발자들이 인프라도 만지고 그러니까, 그리고 인터넷/네트워크 통신 한다는 사람들이 이 정도의 기본은 알아야지 하는 마음으로 공부해봤다.그리고 그 내용을 정리한 것이 아래와 같다.인터넷 : 인터넷은 여러 작은 네트워크들을 묶은 것을 이야기한다. 우리가 LAN케이블로 PC에 연결해서 사용하는 네트워크 망 전체를 인터넷이라고 한다고 보면 된다.이더넷 : 이더넷은 다른 피씨와 통신하는 방법 중에 하나로 CSMA/CD라는 프..
패킷 분석 툴, 와이어샤크(WireShark) 사용법 (필터링, 검증, 처음 사용해보는 사람을 위한 안내) 와이어샤크(Wireshark) 와이퍼샤크는 오픈 소스 패킷 분석 프로그램으로 "pcap"을 이용하여 패킷을 잡아내는 것이 주요 기능이다.윈도우뿐만 아니라 리눅스같은 유닉스 계열의 운영체제에서도 사용된다.무차별 모드(promiscuous mode)를 지원해서 나한테 들어오고 나가는 패킷만 얻을 수 있는 것이 아니라 브로드캐스트나 멀티캐스트 트래픽도 얻을 수 있다. (100% 모든 것을 확인할 수 있는 것은 아님.)* 여기서 사용 목적이 좀 나뉠 수 있다.패킷을 분석하는 툴이기 때문에 해당 패킷을 보고 싶은 사람이 사용할 수도 있고, pcap 라이브러리를 이용해서 패킷 분석 프로그램을 개발할 수도 있다.또한 패킷 복호화를 통해 해킹(?)을 해볼 수 있고, 보안을 배울 수도 있다.하지만, 나 같은 일반적인 개..