IT,프로그래밍

    [Mac OS, Mysql] error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' 에러

    brew install mysql로 설치하고 실행을 하려하니 error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 에러가 발생했다. 이유는 mysql이 실행이 되고있지 않아서인데, mysql.server start을 입력하면 간단히 실행된다

    [ROW_NUMBER()]컬럼에 1씩 증가하는 숫자 추가

    이번에 sql에 새로운 컬럼을 추가해야 하는데, 특정한값을 기준으로 1부터 증가하는 값이 존재하는 컬럼을 만들어야 했다. 바로 컨텐츠의 에피소드의 챕터숫자를 추가해야한다. 컨텐츠는 여러개의 에피소드를 가지고 있다. 에피소드는 여러개의 챕터를 가지고있고, 1부터 시작한다. 위와 같은 조건으로 increase가 되는 값을 입력을 해야하는데 문제점은 이미 insert되어있는 데이터에 추가를 하는것이기에 쉽지가 않았다. 결론적으로는 아래와 같은 sql문으로 해결했다. update episode as e,( select ROW_NUMBER() OVER(PARTITION BY content_id ORDER BY created_at) as chapter, id from episode order by content_i..

    자바스크립트 This 간단 정리

    코어자바스크립트: http://www.yes24.com/Product/Goods/78586788 this란? this는 함수를 호출할때 결정된다. 즉, 함수를 어떤 방식으로 호출하느냐에 따라 값이 달라진다. 전역공간에서의 this 전역객체를 가리킨다. 개념상 전역 컨텍스트를 생성하는 주체가 바로 전역객체이기 때문이다. 브라우저에서는 window고, node에서는 global이다. 함수와 매소드에서의 this 함수에서의 this는 전역 컨텍스트를 나타낸다. 이유는 자바스크립트의 모든 요소는 전역컨텍스트의 프로퍼티로 생성이 되기 때문이다. 하지만, 객체안에 담기는 매소드의 경우는 선언한 객체의 프로퍼치를 나타낸다. 매소드 내부의 this 어떤 함수를 매소드로 호출하는 주체는 함수명 앞의 객체입니다. 즉, 마..

    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..