본문 바로가기

프로그래밍24

기술 면접에 자주 나오는 질문들 - 인덱스 이번 글부터 개발자 기술면접에 자주 나오는 질문들을 하나씩 다뤄보려고 합니다. 1. 데이터베이스 인덱스를 고르는 기준이 뭔가요? 카디널리티가 높은 순서로 고른다. 인덱스를 1개의 컬럼에만 걸어야 한다면 카디널리티가 가장 높은 것을 잡아야 한다. 카디널리티란 해당 컬럼의 중복된 수치를 나타낸다. 예를 들어서 성별, 학년은 카디널리티가 낮다. 주민등록번호, 계좌번호 이런것 들은 카디널리티가 높다. 카디널리티란 컬럼의 중복도에 관한 내용이다. 중복도가 낮으면 카디널리티가 높다. 중복도가 높으면 카디널리티가 낮다. 되도록 업데이트가 빈번하지 않은 컬럼으로 인덱스를 구성한다. where 절에서 자주 사용하는 컬럼에는 인덱스 추가를 고려한다. join시 자주 사용하는 컬럼은 인덱스로 등록한다. 단일 인덱스 여러개보.. 2021. 4. 23.
typescript 로 express, koajs 프로젝트 세팅하다 찾은 좋은 도구 ts-node 2줄 요약. ts-node aaaa.ts 를 하면 typescript 파일인데 js 로 변환 안하고 그냥 실행 할 수 있다. typescript-koa-starter 를 쓰면 koajs 프로젝트를 typescript 로 초기세팅을 편하게 할 수 있다. 예전부터 expressjs , koajs 같은 틀이 없는 프레임워크를 사용할때 일정한 틀로 개발할 수 있도록 하는 방법에 관심이 많았다. 그러다 ts-node 라는 좋은 도구를 알게 되었다. const func = () => { console.log('jeanjkdnfkoasdf') } 이렇게 작성된 ts 코드를 js 변환 없이 바로 실행 할 수 있다. 이건 마치 deno 런타임으로 nodejs 프로젝트를 실행하는 느낌이다. typescript-koa-st.. 2021. 1. 30.
Golang을 쓰면서 알게된 것들 golang golang은 stack 자료형이 없다. arraylist가 제공되지 않는다. 배열로 append 한다. append는 있지만 delete는 제공되지 않는다. rune 타입이라는게 있다. int 와 같은 형태지만 int와는 다르다. map 이 서로 같은지 비교하려면 reflect.DeepEqual(a,b)를 해야한다. golang은 관례상 error 값이 함수 리턴의 마지막 값이다. func main() (data, error) { } golang은 가변길이 파라미터를 지원한다. package main import "fmt" func varchar(txt... string) { fmt.Println(txt) } func main() { varchar("123", "234", "234") } .. 2020. 9. 30.
golang 마샬링 / 언마샬링 고랭 + gRPC에서 json 데이터를 다룰때 마샬링과 언마샬링이라는 개념이 있다. 보통 encoding/json 패키지를 활용해서 마샬링을 하게 된다. 마샬링은 데이터를 바이트로 변경한다. var name string name = "hello" byte := json.Marshal(name) 언마샬링은 바이트를 고랭에서 쓸 수 있는 변수 형태로 변경한다. name := "hello" var us string json.Unmarshal([]byte(name), &us) 여기서 조금 특이한 점은 Unmarshal의 파라미터로 &us 포인터 형태로 전달한다 이렇게 하면 us 변수에 해당 값이 할당된다. 조금 C 언어 같은 느낌이다. 2020. 9. 17.