728x90
반응형

10분이라도 시간을 내어 내가 좋아하는 회사 선배님께서 추천해주신 책을 읽고 있다.

'이펙티브 엔지니어'라는 책인데 개발자의 인생을 바꾸는 효율성의 법칙을 중심으로 여러 가지 개념, 자세(?) 등을 설명해준다.

https://book.interpark.com/product/BookDisplay.do?_method=Detail&sc.shopNo=0000400000&dispNo=&sc.prdNo=354815916&sc.saNo=002001023&bkid1=category&bkid2=ct028023&bkid3=c1&bkid4=001 

 

싸니까 믿으니까 인터파크도서

조인석(Elastic 수석 기술지원 엔지니어 & 솔루션 테크 리드) 이 책을 접한 여러분은 행운입니다. 이 책으로 지금 여러분이 속한 조직의 부족한 부분을 확인하고, 보완하기 위한 구체적인 솔루션을

book.interpark.com

개인적으로는 동기부여가 정말 많이 되는 책이라서, 이제 막 개발자로 일을 시작하는 신입 개발자분들부터 팀 리더급인 분들에게까지 추천하고 싶은 책이다.

아직 읽어야 할 페이지가 많이 남아서 더욱 기대된다. 

 

레버리지

단위 시간당 생산하는 가치라는 개념으로 레버리지를 소개한다. 

지금 하는 일이 현재 목표를 이루기 위해 가장 높은 레버리지를 내는가? 라는 질문을 꾸준히 하며 레버리지가 높은 일들을 우선적으로 함으로써 생산성과 효율성을 높여야 한다.


먹고 놀고 일하느냐 바쁜 현대사회, 정말 단 10분 시간 내어 보거나 지하철(탈 일이 거의 없지만,,)에서 틈틈이 읽고 있다.

읽다가 '어맛, 이건 꼭 기억하고 싶어!' 하는 내용이 있어 책상에 앉은 김에 오늘은 독서 대신 기록을 하려고 한다.

 

근무 시간을 활용해서 새로운 기술을 발전시켜라

회사에서 해야 할 일이 너무 많아 부담을 느낄 수 있는데, 20% 시간 동안, 즉 일주일 중 하루에 해당하는 시간을 회사를 더 발전시킬 사이드 프로젝트에 씀으로써 장기적으로 개발자의 성장과 회사의 발전에 투자하는 것이 좋다고 한다.

직장에서 이용할 수 있는 자원을 활용하는 10가지 방법을 제안하는데

  1. 회사에서 가장 뛰어난 개발자가 작성한 코어 추상화 코드를 연구하라
    • 대규모 코드 베이스의 초창기 개발자가 작성한 코어 라이브러리 코드를 읽어보고
    • 어떤 점을 배울 수 있는지 고민하며, 이전 버전 코드에서 재작성된 코드를 중점적으로 이해해라
  2. 더 많은 코드를 작성하라
    • 프로그래밍 실력이 부족하다고 느낀다면 회의나 제품 설계에 쓰는 시간을 줄이고 코드를 만들고 작성하는 시간을 늘려라
    • 기억에서 지식을 불러올 때 더 잘 익힐 수 있다.
    • 능동적으로 프로그래밍해라.
    • 프로그래밍 기술을 발전시키는 활동은 레버리지가 높은 활동이다.
  3. 내부에서 제공되는 기술 교육 자로를 꼼꼼히 살펴보라
    • 설계 문서나 기술 강연을 학습에 활용하라
    • (온보딩 등 교육 프로그램이 있어야 하는 이유!)
  4. 자신이 사용하는 프로그래밍 언어를 마스터하라
    • 언어별로 좋은 책 한두 권을 읽어라
    • 각 언어의 고급 개념을 제대로 이해하고 코어 라이브러리에 익숙해져라
  5. 코드 리뷰는 가장 혹독한 리뷰어에게 부탁하라
    • 언제나 더 좋아질 수 있다.
    • 아무에게나 리뷰 부탁은 지양, 꼼꼼히 검토할 수 있는 리뷰어에게 부탁하자.
  6. 발전하고 싶은 분야에 관한 수업을 수강하라
    • 기업에서 연계된 교육을 적극 활용
  7. 관심 있는 프로젝트 설계 논의에 참여하라
    • 초대받기를 기다리지 마라.
  8. 다양한 프로젝트에 참여하라
    • 비슷한 방법으로 비슷한 일을 해서는 성장하기 어렵다.
    • 다양한 프로젝트에 교차로 참여하여 여러 기술을 교차로 연습해라.
  9. 보고 배울 만한 것이 있는 시니어 개발자가 최소한 몇 명 이상 되는 팀에 머물러라.
    • 그렇지 않다면 팀을 바꾸는 것을 고려
  10. 모르는 코드에 용감하게 뛰어들어라
    • '자신이 모르는 코드에 뛰어드는 것을 겁내지 않는 것'이 엔지니어링 분야에서의 성공과 큰 연관이 있다.
    • 실패를 두려워하지 말고 모르는 분야를 파헤치는 연습을 많이 해라. 그래야 발전한다

 


 

정말 피가 되고 살이 되는 말이다. 그런데 정리를 하고보니..

회사에서 정말~~~~ 바쁘게 있어야 할 것 같다. ㅋㅋㅋㅋ

다양한 프로젝트에 참여도 해야 하고 그 와중에 코드도 많이 작성해야 하는데 불필요한 회의나 설계는 빠져야 하는데 또 관심 있는 프로젝트 설계 논의에는 참여해야 한다. ㅋㅋㅋㅋㅋ

화이팅~

728x90
반응형
728x90
반응형

서버끼리 통신하는 작업을 하다가 방화벽이 뚫려 있는지 확인할 일이 생겼다.

ping도 쓰고 curl도 쓰는데 둘 차이가 뭔지 갑자기 궁금해져서 찾아봤다.

 

Ping

ping [대상 목적지 ip]

탁구 ping pong의 줄임말인 줄 알았는데(그런 의미도 있다고 하지만),  Packet Internet Groper의 약자라고 한다...!

확인할 IP로 인터넷 패킷을 전송하고 대상이 보낸 응답을 분석하는 방식이다. 

실제 ping google.com을 쳐보면 packets 전송상태를 나타내 준다. 

ping은 ICMP 프로토콜(TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜)을 사용하는데 이 프로토콜은 OSI 7 계층의 3 layer에 해당하는 Network layer에 속하는 프로토콜을 사용한다.

OSI 7계층(리마인드,,)

 

그렇기 때문에 4 layer인 Transport layer에서 사용하는 port 정보를 이용하지 않는다.

그래서 ping 명령어로는 포트가 열려있는지 까지는 확인할 수 없는 것이다.

 

Curl

curl [대상 목적지] (default로 GET)

Curl은 Client URL의 약자라고 한다. URL로 데이터를 전송하여 서버에서 데이터를 가져오거나 서버에 데이터를 보낼 때 사용한다.

즉, curl을 활용하여 endpoint에 HTTP 프로토콜을 이용하여 PUT, POST 등의 요청을 보내고 그 결과를 확인할 수 있다.

 

 

telnet

telnet [대상 목적지] [포트번호]

ping이 단지 요청을 보내고 받아서 분석하는 명령어라면 telnet은 컴퓨터와 컴퓨터 사이를 연결해주는 명령어이다.

포트 오픈 확인까지 할 수 있는 telnet은 transport layer 를 통해 통신하는 거(겠지..?)

윈도우 컴퓨터에서는 설정을 통해 telnet을 활성화시키면 되고

맥 환경에서는 brew를 통해 다운로드하면 된다.

728x90
반응형
728x90
반응형

내가 좋아하는 물리학자 김상욱 교수님의 <떨림과 울림>을 읽다가,

스쳐지나가듯 열역학 법칙이 언급되었다.

 

분명 고등학교 물리시간에 열역학 법칙 배웠고 외웠던 것도 기억이 나는데,

내용이 기억이 안난다.

그래서 정말 스쳐지나가듯 언급된 열역학 법칙이었지만 궁금해서 찾아봤다.

 

모두 이해하고 정리하긴 귀찮으니 간단 정리 & 링크 투척

 

열역학 제0법칙: 만약 두개의 계가 다른 세 번째 계와 열적평형상태에 있으면 이 두개의 계는 반드시 서로에 대해 열적 평형상태이어야 한다는 것이다. 이 법칙은 온도를 정의하는 하나의 방법이다.

 

열역학 제1법칙: 고립된 계의 에너지는 일정하다는 것이다. 에너지는 다른 것으로 전환될 수 있지만 생성되거나 파괴될 수는 없다. 열역학적 의미로는 내부에너지의 변화가 공급된 열에 일을 빼준 값과 동일하다는 말이다. 이 법칙은 제1종 영구 기관이 불가능함을 보인다.

열역학 제2법칙: 만약 어떤 고립 계의 엔트로피가 열적 평형 상태에 있지 않다면 엔트로피는 계속 증가해야 한다는 법칙이다. 닫힌 계는 점차 열적평형상태에 도달하도록 변화한다. 즉 엔트로피를 최대화하기 위해 계속 변화한다. 이 법칙은 제2종 영구 기관이 불가능함을 보인다.

 

열역학 제3법칙: 온도가 0으로 접근하면, 계의 엔트로피가 일정한 값을 가진다는 법칙이다.

 

출처: https://ko.wikipedia.org/wiki/열역학_법칙

 

열역학 법칙 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

728x90
반응형
728x90
반응형

URI(Uniform Resource Identifier) -> 통합 자원 식별자로 인터넷에 있는 자원을 나타내는 주소

URL(Uniform Resource Locator) -> 네트워크 상에서 웹 페이지, 이미지, 동영상, 등의 파일이 위치한 정보를 나타낸다.

URL(Unifor Resource Name) -> URI의 표준 포맷 중 하나, 이름으로 리소스를 특정한다. 

 

URL은 URI의 더 일반화된 부류의 부분집합이고 URI는 URL과 URN으로 구성된 종합적인 개념이다.

 

http는 스킴(어떻게)를 의미하고 ftp, rtsp(비디오) 등의 다른 가용한 프로토콜을 사용할 수 있다.

URL은 동일하게 '스킴://서버위치/경로' 구조로 이루어져 있다.

 

(항상 까먹어서 내가 보려고 정리!)

728x90
반응형
728x90
반응형

Linux 에서 shell 파일 수정하거나 스크립트 파일 볼때 vi {경로} 명령어로 접근하는데

아래와 같은 문구가 노출되고 vi 창에서도 이상하게 뜬다.

E437: terminal capability "cm" required
Press ENTER or type command to continue

 

이상하게 보이더라도 파일 수정은 해야하는데 수정조차도 잘 안돼서 찾아보니

아래의 명령어를 실행한 뒤 vi 를 실행하면 해결된다.

 export TERM=vt100

 

728x90
반응형
728x90
반응형

Thread 몇개로 돌리는 애플리케이션이 있다.

어떤 thread가 어떤 작업을 하는지 알고싶었다. 그래서 thread id 찍어보고 싶은데 어떻게 찍는지 몰라서 찾아봄

val threadId = Thread.currentThread.getId

 

생각보다 많이 간단...!

728x90
반응형

+ Recent posts