본문 바로가기
728x90
반응형

분류 전체보기231

기초1 컴퓨터 -> 정의된 방법에 따라 입력된 데이터를 자동으로 처리하여 정보를 생산하는 기계 -> 외부로 받아들이는 입력 기능, 내부 장치 조정하는 제어 기능, 입력된 데이터를 저장(저장,기억), 연산 기능, 출력 기능 비트, binary digit : 두 개의 상태를 갖는 (on off) 가장 작은 단위임 컴퓨터는 트랜지스터를 통해 2진법 숫자로 데이터를 표현함 아날로그 / 디지털 아날로그 : 연속적인 물리량 값 디지털 : 이산적인 값으로 근사하여 표현함 아날로그 시계는 초침이 지날 때 중간 과정이 있지만, 디지털 시계는 1->2 단순히 값을 표헌함 아스키 코드 각 문자를 7비트로 표현함 2^7 = 128개 표현 1. string -> char(string) 2. char => 아스키 코드 (char -> .. 2024. 4. 11.
리액트 지역 상태 전역 상태 자바스크립트 함수는 순수 함수 / 비 순수 함수로 나뉨 순수 함수는 인수에만 의존함 동일한 인수를 받으면 동일한 값을 반환함 순수 함수 예 const addOne = (n) => n + 1 이는 전역 변수에 의존할 수 있음 let base = 1 const addOne = (n) => n + base 외부에서 함수 작동 방식을 변경할 수 있어서 좋긴하지만 외부 변수에 의존한다는 사실을 모르고 다른 곳에서 사용했다간 오류 날 수도 있음 또, base 는 싱글턴 형태라 재사용성이 떨어지기도 함 const createContainer = () => { let base = 1 const addOne = (n) => n + base const changeBase = (b) => base = b return { a.. 2024. 4. 11.
strategy template 패턴 스트래티지 패턴(Strategy Pattern) 객체지향 디자인 패턴 알고리즘군을 정의하고 각각을 캡슐화하여 교환할 수 있도록 만드는 패턴 클라이언트는 알고리즘을 독립적으로 선택, 알고리즘의 변경에도 영향을 최소화 // 오름차순 정렬 함수 const ascending = (a, b) => a - b; // 내림차순 정렬 함수 const descending = (a, b) => b - a; // 정렬 함수를 인자로 받아 배열을 정렬하는 함수 const sortArray = (arr, compareFn) => arr.slice().sort(compareFn); // 예시 배열 const numbers = [5, 2, 8, 3, 1]; // 오름차순 정렬 const sortedAscending = sortAr.. 2024. 4. 11.
useState 와 useReducer useState 1. 이 버튼을 누르면 값이 이전 값과 같기 때문에 렌더링하지 않음 ... setCount(1)}>1 ... 객체는 참조형이기 때문에 주소값이 달라져 렌더링함 ... setCount({count:1})}>1 ... - 객체는 참조형이라서 값만 바뀌면 메모리 주소 안 바뀜 밑 예시는 렌더링 안 됨 ... 1 ... 2. 함수형 업데이트 쓰셈 ... {setCount(count+1)}> {count} ... 위 코드는 빠르게 두 번 누르면 한번만 카운팅됨 이건 상태 업데이트를 비동기적으로 하는 리액트 때문임 (근데 이 설명보다는 한번에 많은 요청이 오면 성능 최적화를 위해 일괄적으로 처리하려는 리액트 때문에 그런 거 같음) 그래서 보통 함수형 업데이트 씀 c => c + 1가 호출되면서 이전.. 2024. 4. 8.
2024.04.07, weekly memoirs weekly memoirs 1. 리액트 프젝이 끝났다 크흑 리액트 안녕 장기 플젝하다가 (지금 시범용 만들고 잠시 미뤄짐) 팀원분과 함께 맡은 일이었는데 짧게나마 리액트를 썼음에 행복하고... 또 기한에 맞추어 마무리 할 수 있어서 시원~한 기분도 드는 거 같다 2. 장기 프로젝트로 돌아갈 줄 알았는데 뭔가 새로운 과제(?)를 받았다 다시 나는 제이쿼리의 세계로... (익숙) 3주만에 제이쿼리 써서 살짝 어색하긴 했는데 어찌저찌 다시 감 잡고 구현중에 있다 오랜만에 보니 제이쿼리도 나름 재밌다 제이쿼리 예전엔 무조건 css 다 그려놓고 js 붙였는데 리액트처럼 화면 그냥 그리면서 js도 함께 붙이고 있다 처음부터 구조 잡으면서 붙이는게 그냥 빠른 거 같다 3. 요즘 다시 컨디션이 돌아왔다 그 동안 심적으.. 2024. 4. 7.
2024.04.01, weekly memoirs weekly memoirs 1. 요즘 회사에서 리액트 쓴다. 리액트 잊어버린 줄 알았는데 타입스크립트도 그렇고 딱히 공백이 문제가 되진 않았다 오히려 좀 는 거 같은 느낌... (왜지) 타입스크립트도 마찬가지로 전에는 무조건 any만 피하자는 생각으로 빨간 줄 뜨는 곳에 무조건 타입을 넣었는데 요즘엔 왜 이게 any로 읽히는지 이해가 되고, 어디에 타입을 넣어야 좋은지 나름 감이 생겼다 또 예전엔 무조건 interface 만들어서 타입 때려 박았다면 요즘엔 최대한 init 값을 넣어서 타입 알아서 추론하도록 노력하는 거 같다 2024. 4. 1.
Iterator 패턴 Iterator 패턴 컬렉션 내의 요소를 순차적으로 접근할 수 있는 인터페이스를 제공하는 패턴 function createIterator(collection) { let index = 0; return { next: () => { return index < collection.length ? { value: collection[index++], done: false } : { done: true }; } }; } const numbers = [1, 2, 3, 4, 5]; // 배열에 대한 Iterator 생성 const iterator = createIterator(numbers); // Iterator를 사용하여 순차적으로 배열의 요소에 접근합니다. console.log(iterator.next());.. 2024. 3. 19.
자바스크립트 접근 제한자 public, private, protected public : 외부에서 접근 가능 (자바스크립트는 이게 디폴트임) private : # 120) { console.log("Warning: Speed limit exceeded!"); } } // public 메서드에서 protected 메서드 호출 drive() { this.#checkSpeed(); console.log("Driving..."); } } // Car를 상속받는 하위 클래스 class SportsCar extends Car { // 상위 클래스의 private 필드에 접근하여 조작하는 메서드 speedUp() { this.#speed += 20; // 부모 클래스의 private 필드에 직접 접근할 수 없으므로 오류 발생 console... 2024. 3. 9.
2024.03.09, weekly memoirs weekly memoirs 1. 14 학번은 가라.... 24학번으로 학번 세탁 시작했다 들어야하는 의무 교육 후딱 후딱 다 들어놓고 주말마다 강의 들을 예정이다 (지금도 듣고 있움) 신학기라 그런지 평일에는 개강했는지 안 했는지도 모르다가 주말에 수업 들으니 뭔가 들뜨는 기분이 드는 것 같다 동시에 어렸을 때 컴공으로 대학을 갔었으면 재밌고 느긋하게 공부했을 것 같은데 많이 아쉽기도 하다 그래도 늦었다고 생각할 때가 가장 빠르다고 Better late than never~~~~~ 2. 회사에서 진행하는 스터디가 생각보다 재밌다 디자인 패턴 스터디라했을 때 조금 어렵고 실무과 동떨어지겠구나 싶었는데 생각보다 나도 모르는 사이에 쓰고 있는 패턴들도 있었고 모르는 패턴도 알아가며 저렇게 작성할 수도 있구나~.. 2024. 3. 9.
728x90
반응형