전체 글 174

[부스트캠프] 4주차 회고. 한 템포가 끝나고

4주차가 끝나고, 멤버십 첫 과제를 마무리 지었다. 그간 배운것도 많고, 시도해본 것도 많았다. 생각해본 부분들도 상당히 많았는데, 과연 프론트엔드가 객체지향이 좋을까? 함수형으로 만들어주는게 더 좋을 수 있다고도 느낀다. js의 체이닝에서 생각보다 map, filter등의 로직이 중첩되는게 많았는데, 이걸 js의 자유로움(?)으로는 해결할 수 있지 않을까 생각했다. 프로토타입 함수를 만들어, 체이닝을 직접 구현할 수 있다는 장점이 있었다. 이게 개꿀인게, 체이닝이 길어지고, 반복되게 사용할 경우 분리할 수 있다는 장점이 있었다. css가 너무 어렵다.... 프론트엔드 개발하시는 분들이 대단하다고 느껴질 정도였다. 10월에 인프런 리액트 인강을, css와 html의 기본은 부스트코스 강의를 보겠다는 계획..

[부스트캠프] 3주차 회고. 슬슬 즐기기 시작했다.

부스트캠프 멤버십이 시작된지 3주가 넘어, 지금은 4주차 첫날이다. 챌린지 처음엔 js에서 모든 변수와 함수를 var, function으로 만들었던걸 생각하면, 나름 장족의 발전을 하고있다고 생각한다. 자바 덕분이기도 하다. 자바를 1년 반 정도 해보니까, 그래도 자바스크립트가 금방 숙달되는 것 같다. 몇몇 유튜버들이 언어 하나를 배우면, 다른 언어를 금방 배운다고 한 말이 진짜같다. (실제 라틴어를 기원으로 하는 언어들도 하나를 배우면 금방 다른 라틴계 언어도 배울 수 있다고 한다) 사실 현타가 한번 세게 왔었다. 개발을 하면서, 진짜 js가 맞을까? 지금 js를 시작하면서 내가 너무 하찮아지기도 했다. 개인적으로 하는 팀 프로젝트가 있는데, 백엔드팀에서 스프링프레임워크로 개발을 하고있었다. 다른 사람..

[JS] 객체지향만 하던 나...이세카이(JS)에서는 어떨까?

이런 질문을 기존에는 해본적이 없다. 백엔드에서는 결국 관계형 데이터베이스, 그리고 orm(자바스크립트도 type orm같은 orm이 분명 존재했다)으로 인해 백엔드에서는 객체지향이라는 언어가 항상 나왔기 때문이다. 그런데, 간과했던 것은, js는 백엔드용으로 채택하는 언어는 아니다. 오히려 대기업에서는 자바로 백엔드를 짜고, JS는 프론트엔드를 위해 채택한다. 그렇다면, 프론트엔드에서는 어떤 지향일까?? 사전에 생각한 것 자바스크립트는 함수형 프로그래밍 언어라는 이야기를 자주 한다. 즉, 객체간의 협력을 통한 프로그래밍 언어라기 보단, 근본적으로 함수들을 만들어두고, 함수끼리 서로 호출하고 이용되며(?) 유기적으로 동작시키는 것이다. 특히 이런 부분은 자바를 통해 개발하던 나에게는 편리성을 크게 주었다..

장's 개발생각 2023.09.18

[JS] 타입스크립트를 내맘대로 써보고 느낀점(함수형에 객체지향 한컵 넣기)

부스트캠프가 끝난지 딱 일주일째 되는 날이다. 기존의 과제들을 타입스크립트로 하나씩 수정해보면서, 정말 좋다고 느낀 장점들과, 귀찮았던 점이 있다. 좋은 점 런타임에서만 알던, 변수의 타입을컴파일단에서 바로 알 수 있다. 자바만 하던 나라면, 그거 당연한거아님?ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 변수 타입도 모르는 프로그래밍 언어가 있나?? 싶었을 것이다. 자바스크립트를 공부해보며, 이게 참 좋은 기능이었다는 것을 느꼈다. (자멘....꽃이 지고 나서야 봄인줄 알았습니다..) 이러한 부분은 내가 함수에서 파라미터를 받을 때, 파라미터를 활용할 때 특히 득을 봤다. 심지어 함수의 반환타입도 설정해줄 수 있어 아주 편했다. 인터페이스를 사용할 수 있다. 사실 이 부분은 내가 자바스크립트에 있는데 써보지 못한 것일 수 있다. ..

[JS] fs? 이런 기능은 처음이야...

자바에서는 한번도 써본 적 없는 파일 시스템 기능이었다. 이를 위해서 파일 시스템을 먼저 알아야겠지? 이 파일 시스템을 알아야 하는 이유가 몇 가지 있다. 이 fs모듈은 파일의 경로로 접근한다. 해당 경로의 데이터가 파일인지, 디렉토리인지 알고 써야한다. (혹은 이를 검증하기 위한 로직이다) fs모듈도 사실 파일 시스템에 대해서 공부하기 전에 사용해봤다. 알고쓰니 이런 의미였나 싶기도 했다. fs모듈은 쓰는 법은 간단하다. 외부 라이브러리도 아니고, 기본적으로 주어진 모듈이다. const fs = require("fs") 일단 외부 모듈을 담아준다. 그러면 fs에서 지원되는 기능이 되게 많다. readFile writeFile appendFile unlink mkdir rmdir readdir renam..

[OS] 파일 시스템 (부제 : 익숙함에 속아 소중함을 잊지 말자)

파일 시스템이 무엇일까? 우리가 흔하게 쓰는 폴더 안에 폴더 안에 파일 몇개, 그리고 폴더 몇개, 그 폴더 안에 파일 몇개 폴더 몇개.... 끝도없이 구조를 만들 수 있다. 이런 구조를 어떻게 생각해냈고, 어떻게 접근하는걸까? 이거에 대해서 간단하게 공부해보았다. 일단, 폴더를 '디렉토리' 라는 명칭으로 파일 시스템이 이루어져 있다. 폴더는, 파일 시스템에서 부르는 디렉토리, 그 이상의 의미를 가진다. 파일 시스템에서, 파일들을 담으면서, 파일의 경로를 알려주는 디렉토리 이상으로 폴더는 역할을 가지고 있다. 폴더는 파일 시스템에서 다루지 않는 네트워크 환경등을 담고 있기 때문이다. 이를 알고, 디렉토리 & 파일로 파일 시스템을 이해해 보자. 파일 시스템은 디렉토리가 계층적으로 구조를 가지고 있다. 쉽게 ..

CS/운영 체제 2023.08.08

[네이버 부스트캠프] 4주차 끝. 그리고, 이제 뭘할까?

4주차까지 부스트캠프가 끝났다. 마지막 주에는, 주어진 과제를 가지고 생각을 해보며, 최적의 구현을 하는데에 초점을 뒀다. '실제 동작만 되는 구현이 아닌, 충분한 생각을 가지고, 공부해보면서 구현하라' 이 키워드를 들었기에, 그냥 동작하는게 아니라, 실제 상황에서는 어떻게 동작할까? 라는 생각을 하면서 구현을 하려고 했다. 확실히 재미가 더해지는 마지막 주였다. 솔직히, 4주차에는 진짜 잠도 못잔다는 선조들의 지혜(?)가 있어서, 걱정도 많았다. 그런데, 생각한 것 보다 힘들게 잠을 못자진 않았다. 오히려 재미있어서, 이렇게 할까? 저렇게 할까? 라는 생각도 했다. 욕심을 가지다가, 시간에 쫓기기도 했다. 그래도 후회는 없다는 생각이 들었다. 부스트캠프 마지막에 수료식을 하는데, 게임같은 곳에서 위의 ..

장's 개발생각 2023.08.07

[네이버 부스트캠프] 3주차 회고 ( 부제 : 이제야 좀 알겠다 이거! )

부스트캠프 챌린지에서 또다른 한 주가 지났다. 사실 3주 부턴, 실질적인 구현은 더 어려워지긴 했다. 그래도 좋았던 것은, 3주차부터 실질적으로 내가 쓰던 것들이 왜 그렇게 쓰이는 건지 이해를 할 수 있었다. 정확하게 무엇인지는 말하기 힘들지만, 이전까지 배워왔던, 그리고 그 이전부터 내가 써오던 툴들에 대한 자세한 정보를 알 수 있었다. (덕분에 코드를 쓰기 전에, 어떤 구조인지를 생각하는데에 아주 도움이 되었다. 그리고 재미있었다.) 사실 이전 주차에서는 왜 이런걸 시킬까 라는 생각도 했다. 내가 이걸 구현해서 도대체 어디에 써먹을까? 이 생각이 머리를 지배했는데, 해보니까 알겠더라... 이해하는데 엄청 도움이 된다. 3주차가되니까 JS에 더욱 적응을 할 수 있었다. 자바처럼, 그냥 함수를 만들고, ..

장's 개발생각 2023.07.30

[JS] JS에서 비동기처리가 왜 그렇게 중요할까?

heap : 메모리 할당이 일어난다. call stack : 스택프레임이 생성되어 호출된 함수들이 쌓인다. setTimeOut, DOM, HTTP같은건 V8소스에 없다. V8 런타임과 브라우저가 제공하는 웹 API가 존재한다. 브라우저는 DOM, AJAX, timeout, callback queue, event loop를 가지고 있다. JS : 기본적으로 싱글스레드 런타임을 가지고 있다. 즉, 하나의 콜 스택을 가지고 있다. ex : 제곱을 출력하는 기능을 만든다. 구성함수들 곱하기 (a, b) => a * b; 제곱 (n) = > 곱하기 (n, n); 제곱출력기 (n) => console.log(제곱(n)); 콜스택에서 일어나는 일 main 함수 push 제곱출력기 push 제곱 push 곱하기 pus..