It

It

    국방오픈소스아카데미 - Cloud 01 : 클라우드 컴퓨팅 기초개념과 기반기술

    이번에는 개발과정 - Cloud의 3개의 강의 중 첫번째로, 클라우드 컴퓨팅의 기초개념과 기반기술에 대해 학습했다. 강의는 클라우드 컴퓨팅의 개념, 가상화, 컨테이너와 Docker, 오픈스택 등의 내용으로 구성되었다. 강의를 통해 관심이 있었던 클라우드 컴퓨팅에 대해 배울 수 있어 좋았다. 클라우드 컴퓨팅, 엣지 컴퓨팅 환경에 필수적인 '가상화' 개념과, 구글이 우수성을 인정하고 적극 활용하고 있다는 Docker와 같은 내용이 흥미로웠다. 특히 Docker 부분에서는 리눅스 기반 OS에서 여러 Docker들을 구현하고 각각의 Docker에 다른 커널들을 설치했는데, 터미널에서의 커맨드 입력을 통해 실제로 가상의 Docker들에 다른 커널이 설치되어 있다는 것을 확인할 수 있어 신기했다. 하지만 어려움도 ..

    국방오픈소스아카데미 - 개방형OS 기본과정/고급과정

    이번 강의는 개방형OS, 즉 리눅스 커널 기반 OS에 대한 내용이었다. 기본과정과 고급과정으로 나뉘어 있었는데, 실제로는 하나의 강의라고 봐도 무방했다. 강의는 개방형OS가 무엇인지, 일반적으로 한국에서 가장 많이 사용되는 OS, 폐쇄형OS의 대표주자인 Windows와의 차이점에는 무엇이 있는지, Linux의 개발 과정과 역사와 같은 기본적인 배경 지식부터 시작되었다. 그 과정에서 정확히 '커널'이 무엇을 의미하는지, 그리고 구조적으로 Linux 기반의 개방형OS와 폐쇄형OS의 차이점이 무엇인지, 커널의 종류에 따른 차이점이 무엇인지 등을 스스로 검색하면서 알아보기도 했다. Linux/GNU 기반의 다양한 프로젝트들인 우분투, 레드햇, 데비안 등에 대한 이야기도 있었는데, 리눅스를 기반으로 수많은 사람들..

    국방오픈소스아카데미 - 공개SW 활용 및 참여

    국방오픈소스아카데미의 2020 군장병 공개 SW 역량강화교육의 한 과목인 '공개SW 활용 및 참여' 강의를 모두 들었다. 집체교육 선발 신청을 하기 위해 들어야 하는 필수 과목 중 첫 번째 과목이었다. 이 강의의 제목에서 말하는 '공개SW'는, 일반적으로 개발자들이 '오픈소스 소프트웨어'라고 부른다. 강의에서는 오픈소스의 개념부터 시작해서 소프트웨어 개발 방법론, 현업에서의 오픈소스 개발 이야기, 오픈소스 프로젝트에 직접 참여하고 커뮤니티를 활용하는 방법 등을 소개한다. '오픈소스'에 대해선 정말 대략적으로 알고 있었는데, 사실 오픈소스 개발은 프로그래밍 능력이 엄청 뛰어난 사람들만 참여하는 것이라는 생각을 가지고 있었다. 그러나 이 강의를 통해 오픈소스에 대해 배우며 나의 고정관념이 틀린 것이라는 사실..

    WEB2 - Domain Name System / WEB2 - HTTP

    JavaScript와 CSS 강의를 통해 웹 프로그래밍의 기초를 학습했다. 다음으로 바로 Node.js 수업으로 넘어갈까 했지만, 생활코딩 WEBn 모듈에 어떤 다른 강의들이 있는지 살펴보던 중, 두 강의가 눈에 띄었다. Web2 - Domain Name System과 Web2 - HTTP이다. 두 강의 모두 분량이 많지도 않았고, 웹 프로그래밍의 기초 지식을 쌓는 데 도움이 될 것 같아 Node.js보다 먼저 들어보기로 결정했다. 두 강의 중 먼저 들었던 강의는 Domain Name System이다. 직접 hyositive.com이라는 도메인을 구매해 블로그에 적용했지만, 사실 정확한 도메인의 개념에 대해 몰랐었다. 때문에 도메인을 티스토리 블로그에 적용할 때 원리도 몰랐었고, 도메인 구매 대행업체의 ..

    WEB2 - JavaScript / WEB2 - CSS

    Web1 - HTML & Internet 완강 후 바로 Web2 - JavaScript 강의를 듣기 시작했다. 다음 강의라 확실히 Web1보다는 수준이 있었는데, 코딩을 많이 접해본 나에게 어려운 수준은 아니었다. 조건문, 반복문, 배열, 함수 등 학교를 다닐 때 배웠던 내용들을 자바스크립트를 통해 구현해볼 수 있었다. 또 HTML만을 이용해 만들었던 웹은 정적이었지만, JavaScript를 적용해 유저가 직접 변화를 줄 수 있는 동적인 웹으로 변화했기에 더욱 재밌었다. 강의 분량이 Web1보다 꽤 길었는데, 몰입해 듣다보니 금방 끝났다. 여담으로, 이 수업을 통해 "HTML은 프로그래밍 언어가 아니다"라는 말의 정확한 이유를 배우기도 했다. 다음 강의로는 Web2 - CSS를 선택했다. 장기적 목표였던..

    Prologue / WEB1 - HTML & Internet

    군대에서 교양 뿐만 아니라 프로그래밍 공부를 하기로 마음먹었다. 스스로 전공적으로 많이 부족하다고 느꼈기 때문이다. 그러나 싸지방 컴퓨터 사양과 공부 환경 때문에 코딩 공부를 하는 것은 굉장히 힘들었다. 비주얼 스튜디오 등의 프로그램을 설치하려고 했지만 실패했다. 또, 만약 다른 가벼운 프로그램을 설치한다고 해도, 재부팅 시 자료가 삭제되어 매번 세팅하는 데 너무 오랜 시간을 빼앗길 것이 뻔했다. 제한적인 환경 속에서 방법을 찾기 위해 많은 고민과 조사를 거쳤다. 그 결과 나온 결론은 '클라우드 IDE를 통한 웹 프로그래밍 공부'였다. 우선, 클라우드 IDE를 사용하면 다른 프로그램의 설치가 필요없이 코딩 환경을 구축할 수 있다. 나는 가장 일반적으로 사용되는 구름 IDE를 선택해 사용중이다. 덕분에 컴..

    JavaScript란 무엇인가?

    JavaScript는 프로그래밍 언어의 하나로, HTML, CSS와 함께 웹을 구성하는 중요한 요소 중 하나이며 웹 애플리케이션에서 동작을 담당한다. 기본적으로 코드가 한 줄 씩 실행되는 인터프리터 언어이며, JIT(Just-in-time) 컴파일 방식으로 실행될 수도 있다. 자바스크립트는 원래 프론트엔드(클라이언트 사이드) 프로그래밍에 많이 사용되었지만, 최근에는 Node.js라는 플랫폼의 등장으로 백엔드(서버 사이드) 프로그래밍에도 많이 사용된다. 또한 웹을 벗어난 애플리케이션 개발에도 사용되고 있다. 자바스크립트를 기반으로 한 수 많은 라이브러리 / 프레임워크의 등장으로 커뮤니티가 활성화되어 있고, 현 시점 가장 많은 개발자들이 사용하는 언어 중 하나이다. React : 자바스크립트 라이브러리의 일..

    DOM

    Javascript 리서치 도중 DOM이라는 키워드가 나와 조사해 봄 Critical Rendering Path : 웹 브라우저가 원본 HTML 문서를 읽어들인 후, 스타일을 입히고 대화형 페이지로 만들어 뷰 포트에 표시하기까지의 과정. 크게 두 단계로 나뉨 1) 브라우저가 읽어들인 문서를 파싱하여 최종적으로 어떤 내용을 페이지에 렌더링할지 결정하는 단계 * 파싱(Parsing) : 일련의 문자열을 의미있는 토큰(token)으로 분해하고 이들로 이루어진 파스 트리(parse tree)를 만드는 과정, 구문분석 2) 브라우저가 해당 렌더링을 수행하는 단계 DOM(Document Objet Model) : 웹 페이지에 대한 인터페이스 / HTML 요소들의 구조화된 표현 CSSOM(Cascading Style..

    Github 기초

    생활코딩 유튜브 - Github.com 강의를 통한 Github 사용법 학습 - Github에서 repository(프로젝트) 생성 - Code에서 commits(버전) 관리 - GIT 프로그램 시연 영상 시청 (GIT서버 - 내부 저장소 동기화) - repository에 멤버 추가 - Issues : 게시판으로, 다양한 카테고리별로 분류하여 글 작성 가능. 소통의 창구로 기능 - Wiki : 프로젝트에 관련된 지식들을 체계적으로 관리 - Insights : 프로젝트에 관한 정보를 확인할 수 있음 - Fork 버튼을 통해 자기 repository로 복제 가능 - Pull requests : Fork를 통해 복제해 자기가 작업한 코드를 사용해달라고 요청 - Actions : GIT 세팅 가능 (ex. pu..