IT,프로그래밍

    DB 기술면접 질문 - 1

    Index Index란? DB에서 select처리를 빠르게 하기 위하여 추가적인 디스크를 사용하여 색인을 하는것. Index를 어떤 컬럼에 거는가? select를 시행할때 사용하는 join, where, orderby 절 구문에 사용되는 컬럼에 주로 index를 사용한다. 이때, Delete, Update, Insert등이 자주 일어나는 구문에 걸게되면, 오히려 index쓰기, 삭제 작업 때문에 시간이 더 걸리게 되니 주의하여야한다. Index의 장단점은? 장점 select의 속도를 향상시켜서 join, where, orderby등의 작업에서 시간을 단축시킬수있다 단점 Index는 디스크에 추가적으로 Index정보를 쓰기 때문에, 디스크 용량을 더 소모한다는 단점이 있고, Update, Delete, U..

    Javascript 기술면접 질문 - 1

    Javascript 특징과 구조에 대해 설명해주세요 비동기로 처리한다. 메모리 힙과 콜 스택으로 되어있다. 싱글스레드 언어이다. 하지만 브라우저 혹은 Node.js에 있는 이벤트 루프로 인해 비동기 처리가 가능하다. 즉, 자바스크립트 엔진에는 이벤트루프가 존재하지 않는다. 브라우저는 멀티스레드로 동작한다. JS엔진 구조를 설명해주세요 크게 메모리 힙과 콜스택으로 되어있다. 메모리힙에는 실제 코드와 데이터를 할당받아져 있는 객체들이 존재하며 GC 작업을 처리한다. 메모리 힙에는 new space와 old space가 존재한다. 그리고 code가 올라가는 code space, 큰 obejct가 올라가는 large object space등이 있다. 콜스택에는 실행한 함수가 적재되며, 하나씩 실행이 된다. 이때..

    Python 선택정렬, 삽입정렬 알고리즘

    선택정렬 남아있는 데이터의 전체를 검색하여 가장 작은 데이터를 맨앞으로 보내면 된다. 시간복잡도는 O(N^2)이다. ARRAY = [1, 4, 2, 3, 7, 8, 5, 9, 1, 6] def sort(array): for startIndex in range(len(array)): minIndex = startIndex for i in range(startIndex, len(array)): if array[minIndex] > array[i]: minIndex = i array[minIndex], array[startIndex] = array[startIndex], array[minIndex] return array print(sort(ARRAY)) 삽입정렬 처리되지 않는 데이터를 하나씩 골라 적절한 위..

    파이썬(python) 코테 연습용 파일 읽는방법

    항상 자바 스크립트로만 코딩테스트를 보다가 최근 파이썬으로 언어를 바꿨다. 이유는 1. 자료 및 문제의 총량 차이 2. 문법에서 오는 간결함과 그로인해 얻어지는 시간적이다 이다. 특히나 vscode에서 디버깅을 통해서 변수값을 알수있는것도 마이너하지만 확실한 이득이라고 생각한다. 백준등의 문제에서는 input으로 입력을 받는경우가 많다. 이때, vscode에서 테스트케이스를 테스트할때 터미널에서 매번 타이핑해야하는것이 귀찮았다. 물론, 테스트케이스를 다른데 복사한다음에 ctrl c + v하면 되긴하겠지만 그런 원시적인 방법대신 나는 txt 파일을 읽게 함으로서 테스트케이스를 적용하고 싶었다 import sys sys.stdin = open( '~~~~~/iceMaker.txt', 'r') temp = l..

    [React 공부노트 #4] 컨테이너 프리젠터 (Container-Presenter) 디자인 패턴

    Container-Presenter pattern only container 기존의 개발방법은 클래스컴포넌트와 스테이트를 만들고, api서버에서 필요한 데이터를 가져오는데,모두 한곳에서 구현한다. 이것은 비교적 작은 프로젝트에서 사용할때 주로 쓰인다. 이유는, 비지니스로직과 뷰가 한곳에 존재하게 되면 코드가 여러가지 기능이 섞여있기에 프로젝트가 커지게 되면 점점 유지보수하기가 힘들어진다. 그렇기에 유지보수를 위하여 뷰와 비지니스로직을 분리해서 따로 관리를할 필요성이 있는데, 그래서 사용하는것이 컨테이너 프리젠터(container-presenter) 디자인 패턴이다. 개인적으로 비지니스 로직과 뷰를 분리한다는 점에서 백앤드에서 자주쓰이는 MVC패턴과 유사함을 느꼈다. 컨테이너 프리젠터(container-p..

    [React 공부노트 #3] react에서 axios 사용해서 api와 통신하기

    Networking api.js 이라는 파일을 만들어서 api와 통신하는 코드를 몰아 넣을것이다. 그래야지 API 요청에 대한 비지니스 로직이 분산되지 않고 한곳에서 컨트롤이 되기에 유지보수성이 더욱 좋아진다. 나는 API서버와 axios를 사용해서 통신을 할것다 axios axios Promise based HTTP client for the browser and node.js www.npmjs.com 이 모듈은 HTTP통신을 보내게 할수 있는데, 이 모듈을 통해서 api서버에 원하는 요청을 보낸뒤에 받아오는 결과값을 사용할것이다. const api = axios.create({ baseURL: "https://api.themoviedb.org/3/", params: { api_key: "----", ..

    [TS] TS의 기초

    회사생활중 타입스크립트로 개발을 할일이 많이있었다. 타입스크립트를 기초부터 공부를 하며 세세한 사용법까지 공부를 내가 했는가? 나는 정말 타입스크립트를 쓸수 있다고 말할수 있는가? 라는 생각이 들었고, 한번 기초부터 놓친것은 없는지 공부를 해야겠다고 생각을했다. 공부했던 강의의 링크와 참고자료인 타입스크립트 핸드북 링크는 글의 맨 밑에 추가했으니, 한번쯤 꼭 살펴보길 바란다. 이글은 기본적으로 강의를 따라가며 정리한 내용을 바탕으로 한다. 추가로, 작성한 코드는 https://github.com/MinJunKimKR/practice-programming/tree/main/typescript 에서 확인가능하다. 왜 우린 타입스크립트를 배우나 에러는 런타임 전에 알수가 있다. 자바스크립트에 비해서 데이터 타..

    [Nest.js] Exceptionfilter, DTO, Entity, DTO와 Entity의 차이점

    Exceptionfilter 문서링크 Nest에는 애플리케이션 전체에서 처리되지 않은 모든 예외를 처리하는 예외 레이어가 내장되어 있습니다 Throwing standard exceptions Nest는 @nestjs/common 패키지에서 노출된 내장 HttpException 클래스를 제공합니다 일반적인 HTTP REST/GraphQL API 기반 애플리케이션의 경우 특정 오류 조건이 발생할 때 표준 HTTP 응답객체를 보내는 것이 가장 좋습니다. Built-in HTTP exceptions Nest는 기본 HttpException에서 상속되는 표준 예외 집합을 제공합니다. 이들은 @nestjs/common 패키지에서 노출되며 가장 일반적인 HTTP 예외중 대부분을 나타냅니다. 자세한 내용은 상단의 ne..