반응형

CS지식 30

[개발도서] 자바스크립트+리액트 디자인 패턴 프론트엔드개발자 리뷰

프론트엔드 개발자로서 '자바스크립트 + 리액트 디자인 패턴'이라는 책을 읽으면서,  처음에는 디자인 패턴이라는 주제가 워낙 흔하게 다뤄져 왔기 때문에 크게 기대하지 않았습니다. '디자인 패턴'이라는 용어만 들어도 어느 정도 예상 가능한 내용일 것이라고 생각했기 때문입니다.  그러나 책을 읽어나가면서 제 예상은 완전히 뒤집혔습니다. 이 책은 기존의 패턴 관련 서적과는 다르게, 자바스크립트와 리액트라는 현대적인 개발 환경에 맞춰 디자인 패턴을 새롭게 해석하고 적용하는 방법을 제시하고 있었기 때문입니다.    책의 초반부는 예상대로 GoF의 디자인 패턴을 소개하며 시작되었지만, 저자가 자바스크립트의 비동기 처리와 리액트의 컴포넌트 기반 아키텍처에서 이러한 패턴들을 어떻게 효과적으로 활용할 수 있는지 구체적인 ..

CS지식 2024.08.26

[개발] package.json 디펜던시 설치 버전관리 ^ ~ 너 뭐야? 쉽고 빠르게 표로 정리 "^4.17.21" 유의적버전 SemVer

유의적 버전 Semantic version 줄여서 symbol이라고도 부르는데요.프로젝트가 개발되는 특정한 시점 상태에다가 의미를 부여해서 숫자를 매기는 방법입니다. 개발중에 패키지를 설치했다면 해당 패키지의 버전을 확인해볼 수 있을텐데요.그 버전을 어떻게 해석하는지에 대해 알아보고자 합니다. 실제로 프로젝트를 개발하면서 이렇게 버전을 부여하기도 하고 혹은 반대로 이미 개발이 되어져 있는 프로젝트에 우리가 버전을 확인해서기존 버전과 어떻게 달라졌는지 이해하는 용도로 사용.   "dependencies": { "lodash": "^4.17.21" }, "devDependencies": { "parcel": "^2.12.0" }  Major.Minor.Patch4.17.21 ^4.17.2..

CS지식 2024.08.20

[도서리뷰] 제로베이스에서 취업까지 부트캠프 QA편 _ 남효진_한빛미디어

소프트웨어 테스트개발자뿐만 아니라 개발자로 취업하고 싶은 당신이 읽어야 할 필독서17년차 QA가 알려주는 소프트웨어 테스트 가이드 제로베이스에서 취업까지, 부트캠프 QA편_남효진  개발자에겐 개발능력도 중요하지만 테스트능력도 무시못한다고 생각한다.이제까지 소프트웨어 테스트관련책을 본적이 없어서 신기했고, 웹개발자라도 읽어보면 너무 좋을 것 같은 책이다.가장 중요한 점은 이 책, 부트캠프QA는 현직에 실제로 계신 17년차 QA가 집필, 실무에서 겪는 테스팅에대해 자세히 적어놓았기에 테스팅의 중요성을 모른다면 무조건 봐야하는 책이라고 할 수 있을 것 같다. 총 4주에 걸쳐 6개의 강의로 소프트웨어 테스팅의 개념과 테스터의 역할, 실무 테스팅 기법까지 다루고 있다.  QA 엔지니어링의 기본 이해좋은 소프트웨어..

CS지식 2024.07.29

[서평]처음 또는 조금 더 딥하게 Node를 알고싶다면? 비전공개발자 업무에 활용하는 Node.js_비전공개발자

'업무에 활용하는 Node.js'는 이토고타 개발자가 집필하고, 김모세 엔지니어가 번역한 서적입니다. 이 책은 Node.js에 대한 전반적인 설명뿐만 아니라 프론트엔드와 백엔드의 통합 개발 환경을 다루고 있어, 처음 개발을 시작하는 초보 개발자들에게 매우 유용한 가이드입니다. 이 책을 읽으면서 Node.js의 백엔드와 프론트엔드를 아우르는 전체적인 흐름과 구성을 쉽게 이해할 수 있었습니다.자바스크립트, Node.js, 그리고 React에 대한 지식이 있는 분들이라면 책을 매우 수월하게 읽을 수 있을 것입니다.물론, 자바스크립트에 대한 기본적인 지식만 있다면 큰 어려움 없이 따라갈 수 있는 구성으로 되어 있어 초보자도 충분히 학습할 수 있습니다. '업무에 활용하는 Node.js'는 자바스크립트를 공부하는 ..

CS지식 2024.06.23

[도서리뷰] 알고리즘 인사이드 with 파이썬

개발자 붐은 코로나이후에 한번 크게 오고 지금은 정체기인데 파이썬은 개발을 시작하기 위한 가장 좋은 언어라고 불리다시피,개발자가 되기위해 파이썬으로 알고리즘, 코딩테스트를 준비하는 개발자라면 또, 알고리즘/코딩테스트가 뭔지 모르니 개념부터 알고 가자면 무조건 두번은 읽어봐야하는 책이라고 할 수 있을 것 같다.     알고리즘 인사이드 with 파이썬은 '코딩테스트준비하기'뿐만 아니라 알고리즘 설명부터 시작하기때문에 상급개발자로 가기 위해선 그리고 코드를 잘 쓰기 위해선 충분한 알고리즘의 이해가 꼭 필요하다.  알고리즘 인사이드 with 파이썬 이외에도 다른 알고리즘/코딩 관련 서적들이 많겠지만, 가성비최강에 도식화와 충분한 설명이 있는 좋은 책이라고 생각이 든다.  '알고리즘 인사이드 with 파이썬'은..

CS지식 2024.05.26

비전공자로서 컴퓨터의 본질에 대해 다가가기 "컴퓨터 시스템 딥 다이브"

비전공자로서 컴퓨터의 본질에 대해 다가가기: "컴퓨터 시스템 딥 다이브" 비전공 프론트엔드 개발자로서 컴퓨터시스템에 대한 지식이 많이 부족하다보니, 여러책을 찾아보던 중 "컴퓨터 시스템 딥 다이브" 를 발견했다. 컴퓨터의 본질에 대한 깊은 이해를 쌓을 수 있는 이 책은, C뿐만 아니라 python의 예제도 제공하고 있어 c언어를 모르는 독자여도 따라하면서 이해할 수 있다고 생각했다. https://www.yes24.com/Product/Goods/124301248 컴퓨터 시스템 딥 다이브 - 예스24 코드 아래 숨겨진 아름답고 놀라운 컴퓨터 아키텍처 대탐험컴퓨터 시스템은 바다와 비슷합니다. 현대 생명의 기원이 원시 바다 깊은 곳에서 시작됐다고 여겨지듯, 현대의 프로그래밍도 초기 컴 www.yes24.co..

CS지식 2024.02.25

Web Socket 과 Rest API 차이

REST 란 ? HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)를 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH)등을 통해 해당자원에 대한 CRUD Operation을 적용하는 것. CRUD Operation이란? Create, Read, Update, Delete 를 일컫는 말이며, 구성요소는 아래와 같다. Server-Client(서버 - 클라이언트) Stateless(무상태) Cacheable(캐시처리기능) Layered System(계층화) Uniform Interface(인터페이스 일관성) REST가 필요한 이유? - 애플리케이션 분리 및 통합 - 다양한 클라이언트의 등장 - 서버 프로그램은 다양한 브라우저..

CS지식 2023.09.17

import 자동삭제로 인한 ISSUE / firebase: no firebase app '[default]' has been created

프로젝트하던 중 발견한 진짜 정말 정말 사소한 에러.  firebase: no firebase app '[default]' has been created에러  firebase코드를 먼저 불러와야하는데 그게 안되서!!  코드에 import 해놓고 안쓰는 파일은 자동으로 없애려고 설정에 아래 코드를 입력했었다.그러면 firebase import만 하는  마지막 줄은 자동으로 계속 사라진다.    이걸 하루가 지나고 깨달았다. 에러가 나서 엄청 빡쳤기때문에 ...  결론은,VSCODE에서 CMD+, 또는 설정으로 이동 후 오른쪽 상단에 아래와 같은 아이콘을 누른다.    "editor.codeActionsOnSave": {"source.organizeImports": true}, 위 코드를 삭제 후 다시 저장..

CS지식 2023.06.28

[CS지식] 프론트엔드 개발자가 알아야하는 컴공지식 - 중앙처리장치 CPU

중앙처리장치(CPU) - 메인보드에 가장 먼저 연결하는 장치 중 하나 - 인간의 뇌와 같은 역할 - 연산과 제어를 담당 - 3가지 모듈 => 산술/논리장치 (Arithmetic Logic Unit, ALU), 제어장치(Control Unit), 레지스터 (Register) 레지스터(Register) - 기본적으로 프로세스는 메인 메모리에 적재된다. - 실제 연산은 CPU내부에서 수행되므로, 데이터를 CPU로 가져와 처리해야한다. => 데이터를 일시적으로 CPU내부에 저장할 공간이 Register => 레지스터는 CPU의 현재 상태를 저장할 공간으로 사용되기도 한다. 산술/논리 연산 장치 (ALU) - CPU가 실질적으로 연산을 처리할 수 있도록 한다. - 산술 연산(+,-,*,/ 등) 및 논리 연산(AN..

CS지식 2023.06.20

[CS지식] 프론트엔드 개발자가 알아야하는 컴공지식 - 컴퓨터 구조 기초2

일반적인 구조 - 하드웨어 : 컴퓨터가 동작하도록 해주는 내부 물리적인 장치들 - 소프트웨어 : 컴퓨터가 어떻게 동작해야하는지 명시되어있는 명령어 집합 일반적인 하드웨어 구성요소 소프트웨어 - 시스템 소프트웨어 : 하드웨어 자원에 대한 접근이 용이하며, 대개 저수준 언어로 작성된다. => 펌웨어, 운영체제, 컴파일러, 장치드라이버 - 응용 소프트웨어 : 컴퓨터 자원에 대한 직접적인 접근이 제한되며, 대개 고수준언어로 작성된다. 시스템 소프트웨어에 비해 접근하기 쉽고, 친화적이라는 장점이 있다. =>게임, 웹 브라우저

CS지식 2023.06.20

[CS지식] 프론트엔드 개발자가 알아야하는 컴공지식 - 컴퓨터 구조 기초

메인보드(Motherboard) - 다양한 물리적인 장치를 장착할 수 있는 인쇄회로기판(PCB) - 컴퓨터의 CPU, 메인 메모리, 하드디스크(보조기억장치) 등을 장착한다. - 다양한 컴퓨터 부품을 연결할 수 있는 인터페이스 제공 - Motherboard라고도 불림 GPU(Graphics Processing Unit) - GPU는 그래픽 관련 연산을 빠르게 처리하는 답을 도출하는 연산 장치 - 인공지능(딥러닝), 고화질 게임, 무인 자동차등에서 많이 쓰인다. - 컴퓨터 그래픽 / 영상처리에 유용하게 활용 - 대규모 행렬 및 벡터연산을 처리하는데에 뛰어난 성능을 발휘 보조기억장치( 하드디스크, SSD ) [Pros] 전원이 차단되어도 내용이 유지되고, 저장 용량이 크다는 장점 [Cons] 보조기억장치는 메..

CS지식 2023.06.19

[CS지식] 프론트엔드 개발자가 알아야하는 컴공지식 - JWT

JSON - JSON(JavaScript Object Notation) 은 데이터를 주고 받기 위해 사용하는 경량의 데이터 형식 중 하나 - JSON 형식에서는 KEY - VALUE 쌍으로 이루어진 데이터 객체를 사용 Session - 서버에서 가지고 있는 객체로, 특정 사용자의 로그인정보를 유지하기 위해 사용 [Pros] - 클라이언트에게는 세션 ID(회원식별목적)를 제공하고, 회원에 대한 중요한 정보를 서버가 가진다. - 민감한 데이터를 클라이언트에 직접적으로 보내지 않는다. - 클라이언트 브라우저가 가지고 있는 세션ID 자체에는 개인정보를 포함하고 있지 않다. [Cons] - 악의적인 공격자가 세션 ID를 탈취하여 사용자인 척 위장할 수 있다. =>세션 ID를 탈취당하는 경우, 사용자의 많은 권한 ..

CS지식 2023.06.19

[CS지식] 프론트엔드 개발자가 알아야하는 컴공지식 - OAuth

OAuth - OAuth란, Google 로그인 기능과 같다. - 웹 서버에 Google 비밀번호를 제공하지 않고도, Google계정의 일부 접근 권한을 부여할 수 있다. - 실제로 많은 애플리케이션에서는 SNS 간편 로그인 기능을 제공한다. Unsafe 인증 방식( 계정정보를 알려주는) Safe 인증방식 - 사용자가 설정한 권한에 대해서만 Google 정보에 접근 할 수 있도록한다. - 바로 Access Token을 이용하는 것. OAuth 2.0 구성요소 설명 Resource Owner 사용자, 개인정보의 소유자 Client 개인 혹은 회사가 만든 서비스 일반적인 웹/앱 서버를 의미하지만 Client라 부른다. Resource Server(Google, Facebook등) 등의 입장에서는 Client..

CS지식 2023.06.17

[CS지식] 프론트엔드 개발자가 알아야하는 컴공지식 - REST API

REST 등장배경(Representational State Transfer) - HTTP는 다양한 HTTP 메서드(GET, POST, PUT, DELETE 등) 를 지원한다. - 실제로는 서버가 HTTP 메서드를 기존 설명에 맞게 사용하지 않더라도, 프로그램 개발은 가능하다. 하지만 각 서비스가 서로 다른 방식으로 개발한다면, 개발자 사이의 소통에 문제가 발생할 수 있다. - 따라서 기준이 되는 아키텍처로 REST를 채택할 수 있다. REST의 구성요소 - 특정한 자원에 대하여, 자원의 상태에 대한 정보를 주고받는 개발 방식이다. 자원(Resource) URI 이용 행위(Verb) HTTP 메서드 이용 표현(Representation) 페이로드(Payload) 이용 REST 예제( 회원가입 ) ID : ..

CS지식 2023.06.16

[CS지식] 프론트엔드 개발자가 알아야하는 컴공지식 - HTTP

HTTP - 웹상에서 데이터를 주고받기 위한 프로토콜이다. - 웹 문서를 주고 받기 위해 사용한다. - 웹뿐만 아니라 모바일앱, 게임 개발에서도 다양한 목적으로 사용되곤 한다. HTTP Method METHOD 설명 예시 GET 데이터 조회 요청 특정 페이지 접속, 정보 검색 POST 데이터 생성 요청 회원가입, 글쓰기 PUT 데이터 수정 요청 회원 정보 수정 DELETE 데이터 삭제 요청 회원 정보 삭제 HTTP 상태 관리와 세션 - HTTP는 상태를 저장하지 않는다.(Stateless) - 클라이언트는 HTTP로 서버에 연결한 뒤에, 응답을 받으면 연결을 끊어버린다. => 서버입장에서 접속 유지에 대한 요구가 적어, 불특정 다수를 대상으로 하는 서비스에 적합하다. 예시로, 상품확인 -> 장바구니 ->..

CS지식 2023.06.16

[CS지식] 프론트엔드 개발자가 알아야하는 컴공지식 - 쿠키와 세션

쿠키(Cookie)와 세션(Session) - 쿠키와 세션은 웹브라우저와 웹서버가 통신하는 과정에서 많이 사용되므로 자주 언급된다. 쿠키 (Cookie) - 사용자가 특정한 웹 사이트에 방문할 때, 사용자 컴퓨터에 저장하는 기록 파일 - 서버의 자원을 전혀 사용하지 않는다. - ex ) "아이디와 비밀번호를 저장하시겠습니까?" - Chrome과 같이 웹브라우저에서 저장하는 것은 별개 세션 (Session) - 한 명의 사용자(브라우저)의 상태를 유지하는 기술이다. - 서버가 클라이언트에게 고유한 Session ID를 부여하면, 클라이언트는 접속할 때마다 Session ID와 함께 요청한다. - ex ) 웹사이트에 한번 로그인했을 경우, 다른 페이지로 이동해도 계속 접속 상태가 유지된다. - 만약 Sess..

CS지식 2023.06.16

[CS지식] 프론트엔드 개발자가 알아야하는 컴공지식 - Web

다양한 웹 브라우저 - 웹사이트 접속시 웹 브라우저 프로그램을 사용한다. 예를 들면, Chrome, Firefox, Safari => 웹 페이지를 서버에 요청(request)하여 서버의 응답(response)을 웹 문서형태로 받는다. => 받은 웹 문서(HTML, CSS 등)을 렌더링하여 모니터 화면에 웹 페이지를 표시한다. 서버(Server)와 클라이언트(Client) - 클라이언트가 요청(request)를 보내면, 서버(server)가 응답(response)한다. - 서버와 클라이언트 구조를 따르는 대표적인 예시로는 웹 서비스가 있다. - 클라이언트는 일종의 고객으로 이해할 수 있다. - 서버로 요청을 보낸 뒤에 응답이 도착할 때까지 기다린다. - 서버로부터 응답을 받으면, 서버의 응답을 처리하여 화..

CS지식 2023.06.16

[개발공부] 타입스크립트 TypeSciprt를 쓰는 이유?

타입스크린트란? 타입스크립트는 ‘JS+타입’이라고 생각하면 쉽다. 자바스크립트의 확장된 언어지만 자바스크립트와 다르게 브라우저에서 실행하고자한다면 파일을 변환해주어 컴퓨터가 코드를 읽을 수 있게 ‘컴파일’과정을 거쳐야한다. 타입스크립트를 쓰는 이유? 가장 큰 이유로는 ‘에러의 사전방지’를 위함이다. 타입스크립트는 에러를 사전에 방지할 수 있다. function sum(a, b) { return a + b } function sum(a: number, b:number){ return a+b } 첫번째는 자바스크립트, 두번째는 타입스크립트로 작성된 숫자의 합을 구하는 함수코드다. 첫번째는 30이란 결과가 나오겠지만 두번째는 1020이란 결과가 나온다. 이 코드를 vsCode에서 확인하면 아래와 같은 오류를 ..

CS지식 2022.08.07

맥 OS NVM으로 node 버전 관리하기, 이렇게 쉬운 방법이 없음.

개발환경마다 요구하는 node의 버전이 다르므로, 본인이 사용해야하는 node버전을 편리하게 관리하기 위해 만들어진 node version manager 를 설치해보자. 1. NVM이란? Node Version Manager의 약자이며, 다양한 버전의 node를 관리하는 스크립트 nvm 명령어로 빠르게 여러버전의 노드를 설치하고 변경 할 수 있다. 2. 사용법 Homebrew 를 이용한 방법 터미널 / iterm을 열고 homebrew 설치 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" nvm 설치 및 환경변수 추가 brew install nvm vi ~/.zshrc 환경변수 추가..

CS지식 2022.07.26

노마드코더 캐럿마켓 챌린지 1기 시작 D-1 / Framework와 Library의 차이(한방으로 이해 가능)

이전에 결제해놓고 엄마일 도와주면서 수업을 못들었다. 이제 좀 적응도 했고, 테니스치다가 다리도 다치는 바람에 테니스관련 사이트만들어 볼 생각으로 구매해놓은 노마드코더 캐럿마켓을 듣기로 했다. 챌린지도 마침하길래 미리 신청해놓고 오늘부터 Day 1 이 시작된다. 4주동안 진행하며, 총 신청자는 199명. 동료가 199명인 것 같은 느낌!! Day 1인 오늘 캐럿마켓 시작 전 NEXT.JS 강의 3개 듣기가 챌린지이다. Framework와 Library의 차이 다들 Framework와 Library를 비슷해서 같은거라고 말한다. 구글링을 4-5군데 해보면 나오는 결과는 ▶ Framework란? - 프레임워크는 뼈대나 기반구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술 - 소프트웨어의 특정 문제를 ..

CS지식 2022.06.20
반응형