개발 11

완전 가벼운 Docker 개념

빠르게 Docker 개념 훑기 Docker는 Linux Container를 만들고 사용할 수 있도록 하는 ‘컨테이너화 기술'이다 Docker는 Container 방식으로 Process를 격리해서 실행하고 관리할 수 있도록 도와준다 이미지를 기반으로 Container를 실행할 수 있으며, 다시 특정 Container의 상태를 변경해 이미지로 만들 수 있다 이렇게 만들어진 이미지는 파일로 보관하거나 원격 저장소를 사용해 쉽게 공유할 수 있다 따라서 Docker만 설치되어 있다면 언제 어디서나 Container로 실행하는 것이 가능하다 DockerFile? Image? Container? Docker Image는 애플리케이션을 실행할 때 필요한 모든 것을 포함해둔 패키지 형태 Image는 Container를 ..

개발/Docker 2022.09.06

Array 와 List, 그래서 그 것이 무엇이냐

결국 단순한 자료형을 다루는 게 아닌 이상, 처음으로 배우는 자료구조의 종류는 1차원 배열입니다. 그리고 1차원 배열에서 점점 2차원, 3차원을 사용하면서 더 효율적인 자료구조를 찾게 됩니다. 심화적으로 접근하기 전에 1차원을 먼저 제대로 짚고 넘어가려고 합니다. Array, 배열 일단 Array 는 배열입니다. 이 Array는 인덱스가 중요한 구조입니다. 가장 편하게 생각하는 방법은 아파트 한 채라고 생각하시면 됩니다. 대신 한 층에 호수가 1개 밖에 없다고 생각해 봅시다. 처음에 아파트를 10층으로 지었습니다. A, B, C라는 사람이 각각 1, 2, 3층에 삽니다. Apartment[] apart = new Apartment[10] apart[0] = A; apart[1] = B; apart[2] ..

개발/Algorithm 2020.03.03

자료구조, 알고리즘이 필요한 이유?

저는 알고리즘을 대체로 Java를 사용해서 풉니다. 앞으로 올릴 알고리즘이나 자료구조에 대한 게시물들도 Java 코드로 많이 표현될 테고요. 근데 문득, 그런 생각이 들었습니다. 우리는 왜 자료구조와 알고리즘을 공부해야 할까?? 물론 당장 공부할 내용이 없을 경우에는 틈틈이 알고리즘이나 자료구조를 공부하는 것이 좋습니다. 하지만 당장 공부할 게 없을리는 없구요...! (세상엔 공부할 게 넘치니까요!!) 그럼 굳이 시간을 내서 공부할 필요가 없지 않을까요?? 그냥 알고리즘 테스트만 통과할 정도만 되면 되는 것 같은데... 그렇게 생각하시는 분들에게 도움이 됬으면 좋겠습니다. ⚠️주의, 이 글은 취업 준비생(본인) 기준에서의 글입니다. 극단적인 신뢰는 추천드리지 않습니다! 이에 대한 내용들은 의견이 분분하기..

개발/Algorithm 2020.03.02

Node.js 가 무엇인가?? (feat.장단점)

JavaScript 라는 언어는 이제 좀 알게 된 것 같습니다. 혹시 아직 모른다면 JavaScript가 무엇인가?를 참고하세요. 하지만, HTML이나 CSS를 할 때에 사용되는 script 수준의 JavaScript 만을 여러분들은 배운겁니다. JavaScript는 ECMAScript의 버전을 따라 많은 변화가 있었습니다. 이러한 변화들로 하여금 다양한 프로그래밍 패러다임을 접해볼 수 있으며, 이 패러다임의 변화로 다양한 프레임워크들과 모듈들이 만들어지게 되었습니다. 그 중에 보편적으로 사용되는 NodeJS에 대해 살펴볼까 합니다. Node.js 가 무엇인가요? 시작하기에 앞서 Node.js가 무엇인지 찬찬히 알아보고 가도록 하겠습니다. NodeJS 의 홈페이지에 정의되어 있는 내용으로는 비동기 이벤트..

개발/nodejs 2020.01.26

TypeScript, 왜 써야되나?? (feat. 장단점)

JavaScript가 es6로 바뀌면서 큰 인기를 끌기 시작했습니다. 또한, Node.js로 할 수 있는 것들이 점점 많아졌으며, 지금도 많아지고 있습니다. 처음에는 웹에서 사용하기 위한 스크립트 언어로 활용되다가 점점 백엔드 언어로서 Node.js가 자리를 잡기 시작했고, Angular.js, Vue.js, React.js 처럼 JS 기반 웹 프레임워크가 생기기도 하고, jsx를 활용하여 JS 기반 프레임워크인 React로 앱까지도 만들 수 있게 되면서 점점 JavaScript를 사용하는 프로젝트가 늘어나기 시작했습니다. 그래서 만들어진 TypeScript JavaScript 의 장점은 일반적인 C, Java처럼 자료형이 존재하지 않는 개념입니다. 물론, 어느정도 잡히기는 하지만 프로젝트 단위에서는 추..

개발/TypeScript 2020.01.20

JavaScirpt, 비동기 처리의 모든 것

JavaScript에서는 비동기를 처리하는 것이 아주 중요합니다. 비동기라는 개념이 중요한 만큼 이를 처리하는 것도 중요할테죠. 그럼 이 비동기 함수를 처리하는 방법에 대해 알아봅시다. Callback Function 비동기에서 콜백 함수라는 말을 많이 들어보았을 껍니다. 도대체 콜백함수가 뭐냐, 다른 함수의 작업이 끝난 후 실행되는 함수를 말합니다. 함수는 JavaScript에서 객체이기 때문에 함수를 인자로 사용하거나 반환값으로 사용할 수 있습니다. 여기서 인자로 전해지는 모든 함수들을 콜백함수라고 합니다. function callWithMyName(callback) { callback('IMRaccoon'); } function testFunction() { var hello = 'Hello'; c..

개발/JavaScript 2020.01.01

JavaScript, 비동기??

비동기는 JavaScript 에서 빼놓을 수 없는 개념입니다. 그럼 비동기가 무엇이냐 한 번 살펴보겠습니다. JavaScript 에서의 비동기 JavaScript는 기본적으로 single-thread 언어입니다. 하나의 thread에서 실행되는 언어라는 뜻입니다. 이 말은 곧, JavaScript 엔진은 한 번에 하나의 명령문을 실행 한다는 의미입니다. single-thread 일 경우에 동시성 문제(ex. race-condition)들을 고려해 줄 필요가 없어 코드가 단순하지만, 네트워크 엑세스처럼 상대적으로 오래 걸리는 작업을 메인 스레드에서 수행할 수 없다는 의미기도 합니다. 만약 본인이 운영하는 웹 서버에서 API를 통해 데이터를 요청하는 일을 할 때, 요청을 처리하는데 시간이 오래 걸린다면 메..

개발/JavaScript 2020.01.01

GitHub, 프로젝트 관리하기

GitHub에는 여러 가지 기능이 존재합니다. 혼자서 특정 프로젝트를 진행하거나 공부할 때에는 사용할 일이 없습니다. 하지만 프로젝트를 여러 명과 동시에 진행할 때에 유용하게 쓸 수 있는 GitHub Project 라는 기능을 소개하려고 합니다. 그 전에 Git Issue에 대한 설명, 그리고, issue를 사용하여 project를 관리하는 방법을 보도록 하겠습니다. GitHub Issue Issue, 말 그대로 문제 라는 사전적의미를 지닌, 하나의 노트라고 생각하면 됩니다. 일반적으로 Issue를 오픈소스에서 사용할 때에는 사용자들의 건의사항 또는, 오류내용을 올립니다. 그 오픈소스를 개발하고 관리하는 사람들은 개발해야 할 내용, 개선, 일정, 문제 등 개발에 있어 필요한 내용을 올립니다. 이 Issu..

개발/Git 2019.12.26

JavaScript, 깔끔하게 코드 짜보기

깔끔하게 코드를 짠다는 매우 주관적인 생각입니다. 하지만 대부분과 동일하게, 저에게 클린 코드는 간결 하고, 직관적 이며, 안전한 코드 입니다. 즉, 짧고, 읽기 좋고, 오류가 나지 않는 코드입니다. 뭐 당연한 이유겠지만 굳이 이런 코드를 만드는 이유를 하나하나 짚어 보고 넘어 가겠습니다. 1. 짧은 코드 타인의 코드를 읽는 것은 매우 힘든 일입니다. 코드에는 그 사람의 성격, 성향이 녹아져 들어갑니다. 강제로 본인과 맞지 않는 코드를 보는 것은 지루하며 효율이 무척 떨어지는 일입니다. 그렇기 때문에 더욱 간결한 코드가 필요한 이유입니다. 2.읽기 좋은 코드 읽기 좋은 코드에는 구조가 한눈에 보이는 것과 함수 또는 변수가 어떤 역할을 수행하는 지가 타인이 보기에도 명확한 것입니다. 또한, 엄청 짧은 코드..

개발/JavaScript 2019.12.23

JavaScript, ES5 부터 근황까지

JavaScript는 ECMAScript를 토대삼아 만들어진 언어입니다. ECMAScript는 1997년 6월, ES1 이라는 이름을 달고 태어나 2009년 12월에 ES5 까지 자리를 잡았었습니다. 현재 2019. 12. 17 기준으로 ESMAScript 2020 이 출시가 되었습니다. 그럼 ES5 부터 ES2020 까지의 주요 특징들을 확인해보겠습니다. ES5 (2009) 주요 변화 "use strict" Array 에 대한 forEach, map, filter, reduce, some, every 함수 지원 Object 에 대한 getter / setter 지원 JSON 지원 "use strict" JavaScript 를 사용할 때에 strict 하게 오류를 잡아주는 방식입니다. 이는 자유로운 Ja..

개발/JavaScript 2019.12.18