SE General
-
도커의 보안(Security) 알아보기SE General 2021. 8. 16. 12:23
보안은 중요하다는 점을 모두 알고 있습니다. 하지만 보안에 대해서 보통 까다롭고 복잡하고 지루하고 어렵다고 많이 느끼는데요. 그렇기에 대다수의 플랫폼에서 도커는 매우 사용이 간단한 보안 기능을 제공합니다. 또한, 그러한 디폴트는 완벽하지는 않지만 충분한 보안을 제공합니다. 이번 글에서는 도커 보안과 관련해 리눅스 환경 기준으로 중점이 되는 부분들인 리눅스 보안 기술과 도커 플랫폼의 보안 기술을 알아보겠습니다. 리눅스 보안 기술 네임스페이스 컨트롤 그룹 capabilities Mandatory access control seccomp 도커 플랫폼 보안 기술 스웜모드의 보안 Image scanning Docker Content Trust Docker Secrets 리눅스 보안 기술 대부분의 컨테이너 플랫폼은..
-
도커(Docker)의 네트워킹SE General 2021. 8. 2. 22:12
도커는 애플리케이션을 컨테이너 안에서 실행하고, 실행되는 애플리케이션은 여러 네트워크를 통해 통신을 해야합니다. 이 사실은 도커가 강한 네트워크 역량이 필요하다는 점을 알려줍니다. 그 부분을 위해서 도커는 컨테이너-to-컨테이너, 기존에 존재하던 네트워크와 VLAN으로의 연결을 지원합니다. 후자는 VM이나 물리 서버 같은 외부에 존재하는 서비스와 연동하는 컨테이너화된 앱에서 더욱 중요합니다. 구성을 간략하게 살펴보면, 도커 네트워킹은 Container Network Model (CNM)이라고 불리는 오픈소스 pluggable 아키텍쳐에 기반해 있습니다. libnetwork는 도커의 실제 CNM 구현체로 도커의 핵심 네트워킹 기능을 제공합니다. 드라이버는 libnetwork에 플러그인되어 특정한 네트워크 ..
-
HTTP의 역사SE General 2021. 8. 2. 17:52
HTTP (Hypertext Transfer Protocol)는 인터넷 상에서 가장 많이 쓰이고 적용된 애플리케이션 프로토콜입니다. 단순한 하나의 키워드와 다큐먼트 패스로 시작하여, HTTP는 브라우저 뿐만 아니라 거의 모든 인터넷 기반 소프트웨어 및 하드웨어 애플리케이션에 사용되고 있습니다. 이 글에서는 HTTP의 역사를 살펴보고, 버젼에 따라 중점적인 디자인 변경사항을 알아보도록 하겠습니다: HTTP 0.9 HTTP 1.0 HTTP 1.1 HTTP 2.0 HTTP/3 HTTP 0.9 '팀 버너스 리'에 의해 제안된 초기의 HTTP는 그의 다른 아이디어인 WWW(World Wide Web)의 적용을 위해 '단순함을 염두해두고' 디자인 되었습니다. 그리고 그러한 의도는 잘 작동하는 듯 하였습니다. 199..
-
모바일 네트워킹의 모빌리티(Mobility)SE General 2021. 7. 28. 21:43
넓은 의미에서 모바일 노드(mobile node)는 시간에 따라 네트워크의 연결 포인트를 변경하는 노드입니다. '물리적 모바일 유저'는 네트워크 연결 포인트에서 어떻게 움직이냐에 따라 많은 차이가 있습니다. 빌딩 내에서 와이어리스 네트워크 인터페이스 카드가 있는 노트북을 들고 움직이는 유저가 있다면, 반대로 150 키로로 달리는 BMW를 타고 핸드폰을 사용하며 여러 와이어리스 접근 네트워크를 거치며 끊기지 않는 TCP 연결을 원하는 유저가 있을 수 있습니다. 모바일 노드는 이러한 다양한 이동 형태의 스펙트럼에 따라서 주소를 일정하게 유지해야할 필요가 있거나, 없기도 합니다. BMW를 타며 핸드폰을 사용하는 경우 끊임없이 요청과 응답을 주고 받아야 하기에 그 동안 같은 주소를 유지해야 합니다. 반면 학교에..
-
리눅스(Linux) 단일 호스트 부하 디버깅 (feat. 서버/인프라를 지탱하는 기술)SE General 2021. 5. 26. 23:19
이번 글에서는 보면서 '다시 한 번 곱씹어 내것으로 만들어야겠다'고 느낀 [1]의 '리눅스 단일 호스트 부하의 진상규명'을 내용요약을 중심으로 기술하였습니다. 부하 디버깅 관련 개념 및 방법과 실제로 리눅스의 어떤 명령어를 통해 디버깅이 가능한지를 다루며 아래와 같은 부분으로 이뤄져 있습니다: 부하 디버깅의 관점과 프로세스 부하란 무엇이며 어떻게 이루어져 있는가 부하 디버깅 관련 커맨드: ps, sar, vmstat 부하 디버깅의 관점과 프로세스 부하를 이해한다는 것은 OS의 상태를 이해한다는 것입니다. 그렇기에 OS가 어떻게 동작하는지, 리눅스 커널의 소스를 살펴보며 부하, 성능과 연관된 요소들이 어떻게 측정되는지 살펴보며 부하를 정확히 이해할 수 있습니다. 먼저 간단하게 표면적인 계측치를 먼저 살펴보..
-
셀레니움 내부구조 (Selenium Internals)SE General 2021. 3. 29. 21:48
이 글에서는 자동화 웹 테스트나 웹 스크래핑을 진행해보셨다면, 한 번쯤은 들어보셨을 셀레니움(Selenium)의 내부구조를 살펴보려 합니다. 먼저 넓은 범위의 아키텍쳐를 살펴보고, 실제 주요 로직이 어떻게 동작하는지 코드 레벨까지 살펴보도록 하겠습니다: 셀레니움이란? 셀레니움 아키텍쳐 파이썬 Selenium 요청의 flow 셀레니움이란? 셀레니움의 시초는 2004년 Thought Works에서 Jason Huggins가 내부 도구로 개발한 JavaScriptTestRunner입니다. 그러한 JavaScriptTestRunner는 Selenium Core가 되어 현재의 Selenium을 이루고 있습니다. 발전하던 Selenium에 남아있던 문제 중 한 가지는 로컬 환경에서의 "Same Origin Poli..
-
테크니컬 라이터란? (Technical Writer)SE General 2021. 3. 28. 17:07
헤드헌터를 통해 들어온 토스의 데이터 엔지니어 직무를 살펴보던 중 토스페이먼츠가 'Technical Writer'를 채용하고 있는 것을 발견하였습니다. 동시에 과거 Facebook 출신의 회사 동료의 "페이스북 문서의 90% 정도를 천재적인(?) Technical Writer 한 명이 작성하였다"(진위는 생략...)는 말이 생각났습니다. 이 기회에 테크니컬 라이터의 Job Description 및 국내외 동향을 살펴보고, 그러한 역량을 어떻게 기를 수 있는지(또는 교육 코스는 어떤지) 살펴보고자 작성하였습니다: 테크니컬 라이터란? 국내외 해당 직무에 대한 시장 어떻게 역량을 기를 수 있을까? 테크니컬 라이터란? 테크니컬 라이터란 전문적인 정보 커뮤니케이터로, 다자간 정보를 가장 잘 전달하고 이해시킬 수 ..
-
오라클 DB 아키텍쳐 살펴보기 (Database, Instance, Files, Memory, Process)SE General 2021. 3. 12. 06:53
RDS란? - AWS의 관계형 데이터베이스 서비스들 알아보기 Amazon Web Service는 클라우드 환경에서 다양한 관계형 데이터베이스 서비스를 제공해주고 있습니다. 이 글에서는 관련된 중점 사항들은 무엇이 있고, 어떠한 서비스들이 존재하는지 알아보겠습니 kadensungbincho.tistory.com 오라클 데이터베이스(Oracle Database)는 오라클 기업에서 만든 멀티 모델 데이터베이스 시스템입니다. 그리고 오라클 DB는 주로 OLTP 또는 데이터 웨어하우징 작업에 사용됩니다. 1979년에 처음 출시되어 23번의 릴리즈(또는 버젼)을 만든 만큼 복잡하고 넓은 환경을 가지고 있습니다. 경쟁사의 Microsoft SQL Server, IBM의 Db2 등과 경쟁하고, 대안이 될 수 있는 다양..