일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 에프랩
- 자바스크립트
- Depromeet
- Git
- OS
- 생활코딩
- 마블 다이어그램
- Hot Publisher
- 큐시즘
- 원격 저장소
- 건국대학교
- 파이썬
- time slice
- 멘토링 후기
- RxJava
- 디프만
- github
- 버전관리
- CLI
- spring boot
- Hot Publish
- js 개발자라면 알아야하는 핵심 컨셉
- js
- CPU Scheduling
- Cold Publisher
- flab
- Round Robin
- Observable
- OOAD
- spring
- Today
- Total
목록Development (34)
글쓰는 개발자

이번 학기에는 컴퓨터공학과의 핵심 과목 중 하나인 운영체제를 수강하였다. 운영체제를 수강하면서, 모든 파트에서 컴퓨터가 어떠한 방식으로 돌아가는지 배울 수 있어 정말 많이 배운 수업이었다. 기본적으로 운영체제의 역할은 '자원 관리'에 그 초점이 있다고 생각한다. 컴퓨터의 운용에 있어 물리적으로 충분한 자원이란 존재하지 않는다. 아무리 고성능 컴퓨터를 사용한다 할지라도 무한정의 프로세스를 허용하지는 않으므로, 컴퓨터의 자원을 효율적으로 활용하여야 한다. 컴퓨터 하드웨어의 구조적 효율을 통해 일정량의 자원 관리를 꾀할 수는 있겠으나, 하드웨어 단독으로 그것을 해결하는 데에는 분명한 한계가 있다. 따라서 이 문제를 소프트웨어와의 상호 작용을 통해 해결하여야 하는데, 이때 등장하는 시스템 소프트웨어가 바로 운영..

해당 주제로 포스팅을 하려고 보니 문득, 처음으로 학교에서 C언어 기반의 팀 프로젝트를 했던 시절이 기억난다. 각자 역할을 나누어 개발을 하고 다시 그 코드를 병합했을 때, 우리의 코드는 톱니바퀴처럼 맞물려 하나의 코드가 되고, 우리의 논리들은 하나의 논리가 되어 처음부터 끝까지 도미노처럼 멋지게 완성될 거란 희망을 품고 병합을 했을 때에, 우리는 우주 대폭발을 방불케 하는 코드 대폭발을 경험하였고, 코드의 엔트로피는 한없이 증가하여 손댈수록 돌아올 수 없는 강을 건너기만 할 뿐이었다. 그 덕분에 학점란에 고스란히 새겨진 C+라는 학점은 아직까지도 성적표에 남아 작성자를 괴롭히고 있다. 그때부터가 아니었을까? 코드를 나누기 전에, 어떻게 나눠야 다시 병합할 때 최소한의 에러와 논리 오류만 가져갈 수 있을..

어느덧 github을 통해 하나의 repository를 업로드하고, 그것을 다른 환경에서 동일하게 동기화하는 작업의 막바지에 다다랐다. 이전 포스팅에서, git clone 명령어를 통해 저장소를 다른 PC에 복제해보았다. 복제된 저장소는 다음과 같이 구성될 것이다. 즉 현재 맨 위의 세 개의 저장소가 모두 동일한 파일 구성을 가지게 되는 것이다. 이제 다른 PC에서도 저장소의 내용을 내려받아 수정할 수 있는 상태가 되었다. 복제된 저장소에서 한참 작업을 하여, 작업 내용을 File4.txt에 저장했다. Repository의 내용이 변경되었으므로, git status를 통해 working tree를 확인하면 File4가 untracked 상태일 것이다. 이전과 동일한 방식으로, Local Repositor..

js 개발자라면 알아야 하는 핵심 컨셉 33개, 8번째 순서는 IIFE & Modules and Namespace에 관한 이야기이다. INDEX IIFE? IIFE, 왜 쓰는걸까? JS Browser Module 1)IIFE? 먼저 IIFE라 함은 Immediately-Invoked Function Expressions의 약자인데, 한국어로 번역을 하면 다음과 같다. 그렇다. 어려워 보이는 데 해석하면 별게 없다. 그냥 선언함과 동시에 실행이 되는 함수 식이다. 사용 방법은 간단하다. 함수 선언을 할 때처럼 함수를 작성해주고, 바깥에 괄호를 씌운 후 함수 실행을 표시하는 ()를 작성해주면 된다. 익명 함수로도 작성이 가능하다. 2)IIFE, 왜 쓰는 걸까? IIFE를 어떻게 쓰는지 알아보았다. 근데 이거..

원격 저장소를 생성하고, 원격 저장소에 push 하는 과정까지 지나왔다. 원격 저장소에 지역 저장소의 커밋 내용을 업로드했다면, 다른 곳에서 원격 저장소에 저장된 내용을 다시 끌어와서 사용할 수 있어야 진정한 Back-Up의 의미가 완성되겠다. 그러기 이전에 위의 사진처럼, 우리의 커밋을 불러오기 위해서 똑같은 저장소를 다른 PC에도 설치하여야 commit을 내려받을 수 있는 상태가 된다. 그러려면 우선 directory를 하나 생성한 후에, 그 directory를 git init으로 초기화하고 git remote로 원격 저장소와 해당 directory를 연결한 후 내려받아주면 된다. 그런데 이런 과정 하나하나를 매번 다 해주긴 너무 귀찮다. 예상했겠지만, 위와 같은 복제 기능을 하나의 작업으로 퉁칠 수..

js 개발자라면 알아야하는 핵심 컨셉 33개, 7번째 개념은 Expression과 Statement에 대한 이야기이다. Expression vs Statement Expression은, value를 return하는 어떤 것을 의미한다. 위의 경우 function add는 2개의 인자를 넘겨받아 두 인자의 합을 return한다. 따라서 add는 Expression이다. ※참고로 함수에 return값을 명시하지 않더라도 Expression이 아닌 것은 아니다. 이와 같은 경우에도 함수의 결과 값은 undefined를 return하기 때문에, Expression이라고 할 수 있다. JS는 Expression을 return되는 Value로 대체한다. 위의 경우에 JS는 1+1이 Expression이기 때문에 1..

잠시 이전의 포스팅들을 살펴보자. #1.Call Stack #2.Primitive Types #3.Value Types and Reference Types #4.Type Coercion #5.Typeof 초반 부분에서는 변수들의 특성에 대해 나열하려 하는 듯하다. js 개발자라면 알아야 하는 핵심 컨셉 6번째는 scope이다. scope를 번역하면 '유효범위'가 된다. 선언된 변수들의 유효 범위를 뜻한다. 위의 코드에서 얻어갈 부분이 많다. if문 내부에서 var, let, const 세 가지 변수가 선언되었으나 var로 선언된 변수만 정상적으로 동작한다. 이유는 var는 Functional Scope이고, let과 const는 Block Scope이기 때문이다. Block Scope는 기본 단위가 Bl..

개발하다보면, 사용하고 있는 데이터의 타입 정보가 필요한 경우가 생긴다. 이런 경우를 위해 JS에서는 typeof라는 함수를 제공한다. js 개발자라면 알아야하는 핵심 컨셉 33개, 그 5번째는 typeof이다. typeof에 대해서는 크게 깊게 다뤄야 할 부분은 몇 개 없지만, 자바스크립트에서 발생하는 일종의 버그 케이스가 몇가지 있어 소개하려고 한다. typeof는 대부분의 primitive types에서 작동한다. Boolean, String, Number, Function, Undefined등의 type을 string 형태로 반환해주는 것을 확인할 수 있다. 다음 예시를 보자. 무슨 경우일까. 결과부터 얘기하자면 설계가 잘못된(?) 버그라고 할 수 있겠다. typeof null이 "null"을 r..

원격 저장소를 지역 저장소와 연결하는 작업을 마쳤다. 서로를 연결하는 통로가 생겼으니, 이제 데이터를 주고받을 수 있는 단계가 된 것이다. git을 사용하는데 있어서 가장 중요하고 기본적인 기능이다. 지역 저장소에서 commit을 하고 github에 업로드해보자. ./gitStudy$ git log --oneline --all daa63a3 (HEAD -> master, origin/master) commit without File3 fea7dc5 Revert "Version2" a23df4a Version2 bd66197 Version1 ./gitStudy$ ls -al total 24 drwxrwsr-x 3 cabox www-data 4096 Apr 29 07:13 . drwxrwsr-x 11 cab..

오늘의 주제는 Type Coercion, 직역하면 '형 변환'이다. 강의자에 따르면 JS는 매우 forgiving한 언어이기 때문에, 위와 같은 멍청한(?) 코드를 작성해도 오류를 내지 않고 적당한 조치를 취한 후에 결과를 나타내는데 이때 '적당한 조치'가 바로 '형 변환'이다. 다음 코드부터 살펴보자. console.log(66+true); //67 console.log(66+false); //66 console.log(66-true); //65 66+true(false)를 계산할 때, JS는 true(false)를 1(0)로 변환시키고 66+1(0)을 더하여 콘솔에 출력한다. 따라서 결과는 67(66)이 된다. 마이너스의 경우에도 동일하게 작동한다. Boolean 자료형을 Number 자료형과 +,-..