[카테고리:] Computer Science
-
[Docker2] Windows에서의 Docker 활용
Windows와 태생이 다른 Linux 기반의 Docker Docker는 태생이 Linux 기반이다. 그래서 순수한 Windows에서는 Docker를 활용할 수 없다. 하지만 Windows 10에서 WSL을 출시했다. Windows Subsystem Linux로서 “Windows 환경에서 Linux를 활용”할 수 있도록 도와주는 기능이다. 이를 이용하여 Docker를 활용할 수 있게 되었다. WSL2가 출시되면서 더 native하게 Windows 환경에서 Linux를 이용할 수 있게 되었고 이에따라 Docker의 활용도 더…
-
[Docker1] 내가 느낀 Docker – 특징, 장/단점
Docker의 가장 큰 장점 : 경량화 Docker: Accelerated Container Application Development Docker의 가장 큰 장점이라고 느낀 점은 경량화 VM이라는 것이다. 이전의 VM이라고 하면 새로운 VM을 만들고 그 위에 OS를 설치하고, 필요한 설정들을 복잡하게 해야 했다. 물론 이미지를 만드는 등 나름 재사용에 용이하도록 다양한 기법들이 나왔지만, 그래도 이는 매우 힘든 작업이었다. Docker는 이를 극적으로 개선 시켜준다.…
-
[기술요약6] wsl, wsl2 윈도우 서브시스템 리눅스 알아보기
WSL Windows Subsystem Linux 윈도우의 서브시스템 리눅스 윈도우 개발자를 위한 리눅스 WSL 1 개발 시장이 리눅스로 편중되어 있다 보니까 윈도우 OS만으로는 개발하기가 힘든 세상이 되었다. 마이크로소프트도 이에 대한 애로사항을 알고 윈도우의 하위 시스템, 말그대로 윈도우 안에서 돌아가는 리눅스를 출시했다. 그게 wsl 1이다. 윈도우 안에서 돌아간다는 의미는 완벽한 리눅스 OS가 아니고, 윈도우에 호환되도록 만들어진 리눅스라는 의미이다.…
-
[기술요약5] HTTPS란 무엇인가?
HTTPS HyperText Transfer Protocol Secure 보안된 하이퍼텍스트 전송 프로토콜 HTTP와 HTTPS의 차이점 개인키와 공개키 HTTPS의 동작방식 이전글 다음글
-
[기술요약4] 애자일(Agile)은 뭘까?
개발의 사이즈가 커지고, 한 프로젝트에 배정인원이 많아지면 이 프로젝트를 어떻게 진행시켜 나갈 수 있을까? 고민하게 된다. 이를 소프트웨어 개발 방법론이라고 한다. 여기에는 워터폴, 애자일 등 종류가 다양하게 있다. 애자일은 이런 소프트웨어 개발 방법론 중에 하나다. 애자일은 기민하다는 의미를 담고 있는데 기민함을 추구하며 개발하는 방식을 의미하는 것이다. 애자일은 이전의 개발방식인 워터폴이 수직적이고 선형적인 재미없으며 함흥차사고, 고객과의…
-
[Python 1] 파이썬 인터프리터란?
1등 언어가 된 Python TIOBE 언어 순위를 보면, 어느 새 파이썬이 1위를 차지했다. 무너지지 않을 것 같던 자바의 아성은 무너져가고 있고, 새로운 패러다임으로 함수형 언어가 결국 1위를 차지할 것이라고 했지만 여전히 지지부진이다. 성능이 확실한 놈 또는 개발이 너무나도 쉬운 놈의 양극화가 이뤄지고 있는 과정인 것 같다. 1등이 된 이유 각설하고, 파이썬은 어떻게 1위를 차지하게 된걸까?…
-
[C# WinForm1] Main Thread/GUI Thread, Invoke
왜 C# 윈폼을 선택했는가 Windows Forms를 활용한 사내 프로그램을 제작할 일이 있는데, GUI 프로그램의 전체적인 작동 원리를 공유하고자 글을 쓴다. 본인이 다니는 회사의 IT 조직은 .NET 기반의 Visual Basic.NET을 기반으로 사내 GUI 프로그램을 개발한다. 우리 팀은 IT와는 동떨어진 조직이라 언어를 그대로 차용하지는 않지만 그래도 같은 Framework을 사용해야 호환성도 고려해볼 수 있고, VB.NET과 C#은 사실상…
-
[기술요약3] 프로그램은 어떻게 만드는가? – 코딩, 빌드/컴파일 과정
코딩과 프로그래밍 코딩은 개발자가 원하는 대로 컴퓨터가 동작하도록 만드는 명령어 문구인 코드를 작성하는 일이다. 코딩의 목적은 무엇일까? 결국 사람이 컴퓨터에게 원하는 동작을 하는 일련의 코드를 실행하는 프로그램을 만드는 것이다. 하지만 코딩을 통해 만든 코드만으로는 컴퓨터가 알아들을 수 없다. 왜냐면 사람이 작성한 코드는 기계에게 내리는 명령이지만, 사람만이 알아볼 수 있는 언어로 작성되어 있는 것이다. 결국 이를…
-
[기술요약2] Unmanaged와 Managed란? – 각 언어의 차이점, 개념, 특징
Unmanaged vs Managed, 컴퓨터 언어의 가장 큰 틀 프로그래밍 언어를 분류하는 방법은 많다. 함수형 언어냐, 절차적 언어냐, 개체지향 언어냐. 또는 인터프리터 언어냐, 컴파일 언어냐. 웹 언어냐, GUI 언어냐. 자바진영 언어냐, 마소진영 언어냐, 다른진영 언어냐 등. 근데 오늘은 가장 근본적인 언어의 분류를 이야기 해보려 한다. 언어는 아주 크게 딱 두 부류로 나뉜다. 관리하지 않는, 관리하는 언어로…
-
[기술요약1] 웹 브라우저의 원리, Frontend와 Backend에 대해
들어가며 웹이 어떻게 이뤄져있는가? 웹 브라우저는 어떻게 동작하는가? 우리가 인터넷 브라우저 검색창에 www.naver.com 을 입력했을 때 대충 어떤 일들이 어떻게 일어나는가? 본인은 네트워크 전문가가 아니다. 다만, 백엔드를 검색해도, 프론트엔드를 검색해도, HTML을 검색해도 각자 본인의 영역에서 본인이 아는 네트워크의 일부분만 설명하니 전체적인 개요를 명쾌히 이해할 수가 없었다. 그래서 이런저런 조사를 통해 brief 하게 이해한 브라우저와 웹에…