개발/STUDY 21

useState를 사용할 때는 왜 const를 쓰는가?

const는 상수를 선얼할 때 사용하는 한정사이다. 그렇다면 const [number, setNumber ] = useState(0); 같은 형태로 useState를 사용하는데, 이 때, number은 어떻게 변경이 되는걸까?  setNumber로 number 값이 변경이 되는 것이 궁금해졌다. const [number, setNumber] = useState(0); 에서 'const'는 변수 'const'와 'setCount'가 재 할당될 수 없음을 보장한다. 하지만 setCount 함수는 상태 값을 변경하는 역할을 하며 count 변수의 참조는 변하지 않지만, count의 값을 변경이 된다.  왜 변수가 아니라 useState를 쓰는가? React 상태가 변경되었을 때, 컴포넌트를 다시 렌더링하여 U..

개발/STUDY 2024.05.22

var와 let 그리고 호이스팅

JS에는 호이스팅이라는 개념이 있다. 호이스트가 끌어올리다라는 뜻인데, 뜻처럼 변수나 함수를 맨위로 끌어올리는 것을 말한다.이 때, 할당까지 끌어오리는 것은 아니고 선언만 끌어 올린다. 그래서 아래 코드가 있으면 결과가 에러가 나는 것이 아니라, a는 undefined가 되어 보여진다.  var를 사용할 경우 호이스팅으로 많은 혼란을 초래할 수 있다. 이 뿐만 아니라 var는 같은 함수로 중복 선언이 가능하다. 아래와 같은 코드로 사용되어지면 개발에 혼란을 초래할 여지가 상당히 높다.  이러한 문제를 보완하기 위해 es6부터 나온것이 let이다. let은 호이스팅이 되어지지만 TDZ(Temporal Death Zone)에 할당되어 선언되기 전에 사용하려고 해도 사용할 수 없다. 위와 같은 맥락이지만 에러..

개발/STUDY 2024.05.22

면접 예상 질문을 통한 React 기본 개념 정리

개요. React란 사용자 인터페이스를 구축하기 위한 자바스크립트 라이브러리이다. React는 컴포넌트 기반 아키텍처를 채택하고 있다. 컴포넌트는 재사용이 가능 UI의 독립적인 단위로, 각 컴포넌트는 고유한 상태와 렌더링 로직을 가진다. 쉽게 말해 각 컴포넌트는 state 통해 UI의 상태를 관리하고, JSX를 통해 화면에 표시할 내용을 정의한다. (JSX는 자바스크립트 내에 HTML과 유사한 문법을 사용할 수 있게 합니다.) 특징.Q. Virtual Dom이란?Virtual DOM 을 생성하여 상태 변경이 되었을 때, 변경된 부분만 변경 Q. React의 내부 작동원리를 Reconciliation(재조정)으로 설명하면?    1. Virtual DOM이 초기 렌더링 된다.   2. 상태 변경이 일어난다..

개발/STUDY 2024.05.17

필기 공부

1. TESTDOME에 있는 문제 기반으로 이론을 보충한다.운좋게 많이 맞추긴 했지만 헷갈리는 것을 정리해보려고 한다.  ■ CS 이론  1. HTTP Cookie 관련    - 웹 서버가 사용자의 브라우저에 정보를 저장할 수 있게 해주는 데이터 조각이다.    - 사용자가 웹 사이트에 방문할 때, 쿠키가 브라우저를 통해 서버에 저장될 수 있으며, 주로 사용자의 세션 관리, 개인 설정의 저장, 사용자의 행동의 추적 등에 사용된다.    - 쿠키는 장기적인 저장 매채로 사용하기에는 적절하지 않다. 그 이유는 저장 공간이 제한되어 있고, 만료 날짜가 설정되어 있다. 또한 보안 취약성이 있어 크로스 사이트 스크립트(XSS)의 공격 위험이 있다. 그리고 사용자에 의해 언제든지 쿠키가 삭제 되어 질 수 있다.  ..

개발/STUDY 2024.05.13

[웹 개발 종합반] 1주차 - html, css, 정적 웹페이지 배포

PM 스쿨을 듣기전 컴퓨터 기초 지식을 쌓기 위해 웹 개발 강의를 듣고 있는 중이다. 1주차에는 html,css로 정적 웹페이지를 꾸며 github에 배포하는 방법을 배운다. 우선, html는 태그를 이용해 만들어지는데, 코드를 자주 사용한다. 모든 코드를 외울 필요는 절대 없고 사용할 때마다 찾아보면 알아서 외워진다. 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 31 32 33 34 35 36 37 스파르타코딩클럽 | HTML 기초 나는 구역을 나누죠 나는 문단이에요 bullet point!1 bullet point!2 h1은 제목을 나타내는 태그입니다. 페이지마다 하나씩 꼭 써주는 게 좋아요. 그래야 ..

개발/STUDY 2023.03.23

[SOILD] 단일 책임 원칙(Single Responsibility Principle)

SOLID 원칙은 다섯 가지 객체 지향 설계 원칙이다. Single Responsibility Principle (단일 책임 원칙) 모든 클래스는 변경 사유가 반드시 하나여야 하는 것을 말한다. 아래 코드를 보면 지도를 생성하고 움직이고 크기를 조절하는 것을 한 클래스에서 다한다. 이렇게 한 클래스에서 여러 가지 역할을 하면 안된다. 아래 코드처럼 맵의 중심을 잡을 수 있는 클래스, 맵의 사이즈를 변경해주는 클래스를 따로 구분해 사용하도록 한다.

개발/STUDY 2022.08.25

[javascript] return 값에 함수를 반환하는 이유

함수를 매개 변수로 넣을 때는 ()을 포함시키면 리턴값을 반환한다. test(a()) 이벤트에 넣어줬던 함수 a()가, 이벤트를 실행하기전에 이미 실행되어 리턴값을 반환해버린다. 따라서 매개 변수에 넣을 함수에 매개 변수가 필요로 한다면 리턴값에 함수를 주어 처리할 수 있다. 아래 예제에서 changeMarkerDragable(makers[i])을 넣어주면, return 값을 반환하게 된다. 아래 changeMarkerDragable이 반환값을 주게 되면서 newNode는 click을 하기 전에 이미 실행되어 버린다. 따라서 아래와 같이 return으로 반환 값을 준다.

개발/STUDY 2022.08.17

[리눅스] 리눅스에서 C언어 개발하기

C언어는 전처리, 컴파일, 링킹 과정을 거쳐 빌드가 된다. 그러므로 C개발을 위해서는 컴파일러를 먼저 설치해줘야 한다. //CentOS yum install gcc //C++까지 설치를 위해 yum install gcc-c++ //Ubuntu apt-get update apt-get install gcc vi편집기를 이용해 hello파일을 만들어보자. 1. 전처리 cpp hello.c > hello.i 2. 컴파일 gcc -S hello.i 3. 어셈블 as -o hello.o hello.s 4. 링킹 gcc -o hello hello.o 5. 실행 참조 : https://realrain.net/post/linux-share-library/

개발/STUDY 2021.05.28

B-tree 와 B+ tree

"B-tree와 B+tree의 차이는 무엇인가요?" 예전 모회사 면접을 갔을 때 나왔던 질문이었다. 나는 마침 그 때 배웠던 학부 수업에서 나왔던 터라 외웠던 내용을 얘기했다. 근데 단순 외웠던 거라 그런지, 제대로 된 답변을 못했다. 기술 면접을 준비하고 있는 요즘, 다시 공부해본다. B-tree "데이터베이스와 파일 시스템에서 널리 사용되는 트리 자료구조의 일종으로, 이진 트리를 확장해 하나의 노드가 가질 수 있는 자식 노드의 최대 숫자가 2보다 큰 트리 구조이다. " by wiki 음.. 정리해보자면 이진 트리와 유사한 트리 자료구조 인데, 노드의 자식 노드의 최대 숫자가 2보다 큰 트리를 말하는 거라고 말할 수 있다. 또 구글링을 해보니, 하나의 노드에 여러자료가 배치되는 트리 구조라고 한다. 상..

개발/STUDY 2020.09.07