목록전체 글 (305)
개발하고 싶은 초심자
인스타그램 스키마 디자인과 sql 명령어 스프린트를 페어 시간에 진행했다. 스키마 디자인과 스프린트 내용 모두 영상과 글로만 봤을 때는 잘 이해가 되지 않았지만, 실제로 해보고 모르는 부분은 페어 분과의 대화를 통해 이해할 수 있었다. 혼자서 일대다 관계와 다대다 관계를 머리속으로 그려보고 영상에서의 설명을 들으면 머리만 복잡해지고 이해가 힘들었는데, 역시 내가 직접 해보는 것이 도움이 많이 되었다. 실제 인스타그램 기능들을 전부 구현할 수는 없었지만 대략적인 포스팅이라던가 해시태그, 좋아요 등의 기본 기능들은 거의 구현했다. 페어 시간에 기본 기능을 구현해보고, 복습하는 시간에 스키마 디자인을 바탕으로 mysql 콘솔에 직접 테이블을 만들었다. 이 또한 처음에는 어떻게 시작해야 할 지 막막했지만, 계속..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/BKHOn/btru4j2SuL9/Kn5oKDU6MIhiXGrKpE73R1/img.gif)
1. 데이터베이스의 필요성 ✷ 영속성(persistence): 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성 ✷ 데이터베이스 : 애플리케이션에서 사용할 데이터를 체계적으로 디스크에 담도록 만들어진 데이터 저장 전용 프로그램. ① In-Memory ‣ JavaScript에서 데이터를 다룰 때에는 프로그램이 실행될 때에만 존재하는 데이터가 있다. ‣ JavaScript에서 변수를 만들어 저장한 경우, 프로그램이 종료될 때 해당 프로그램이 사용하던 데이터도 사라진다. === 변수 등에 저장한 데이터가 프로그램의 실행에 의존한다. ⇒ 예기치 못한 상황으로부터 데이터를 보호할 수 없고, 프로그램이 종료된 상태라면 데이터를 원하는 시간에 받아올 수 없으며, 데이터의 수명이 프로그램의 수..
1. macOS에서 homebrew를 통한 MySQL 설치 brew install mysql brew info mysql (우분투 / 리눅스 환경 설치 명령어) // 패키지 매니저 apt-get을 이용한 설치 // OS에 포함된 패키지 매니저이기 때문에 별도 설치 필요 X sudo apt-get update sudo apt-get install mysql-server 2. MySQL 프로그램 실행 brew services start mysql (우분투 / 리눅스 환경 설치 명령어) sudo systemctl start mysql 3. MySQL 접속과 비밀번호 세팅 1. mysql -u root 2. mysql을 처음 설치하면 root 비밀번호는 비어있기 때문에 엔터 키를 눌러준다. 3. welcome ..
오늘은 페어 분이 사정이 있으셔서 함께 진행하지 못하고 혼자 코플릿을 풀었다. 어제는 그나마 원래 풀어봤던 토이 문제 같은 느낌이라 많이 어렵지 않게 풀 수 있었는데, 이번에는 수학에서 배운 개념이 같이 있어서 그런지 많이 어렵게 느껴졌다. 특히 조합과 중복 순열이 헷갈려서 거의 레퍼런스 코드를 참고하여 이해하는 방식으로 진행했다. 그래도 줌 세션을 들으면서 블로그에 정리해보니 레퍼런스 코드도 이해되고 기본 로직을 어떻게 해야 하는지 알 수 있었다. 다만 항상 그랬듯이, 개념을 이해하는 것에만 그치지 않고 내 것으로 만들어야 하니, 반복학습이 중요하다. 코플릿 문제들을 계속 풀어보며 연습해야겠다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eygpl4/btruQrBEpL0/GvAbUFWaqkU5dNltAkhYHK/img.png)
요소를 한번씩 보면서 다 뽑아줘야 하기 때문에 순회는 필수이다. 순회가 필수이기 때문에 반복문으로 할 수 있지 않을까 라는 접근이 가능하다. ① 순서가 없는 조 = 조합(combination) ['사과', '오렌지', '망고'] 3개 중 2개로 조합할 수 있는 모든 경우의 수(순서에 상관 없이) ['사과', '오렌지'] ['사과', '망고'] ['오렌지', '망고'] 어떤 것이 앞에 있던 뒤에 있던 순서에 상관없이 똑같은 하나의 경우의 수로 본다. ⇒ 총 경우의 수는 3개 nCr 에서 최대 n의 개수만큼 r을 뽑을 수 있다. 즉, 중복을 허용하지 않기 때문에 r은 n과 같을 수는 있어도 넘을 수 없다. r
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/k5rC0/btruVLslbPe/KAdvIkKYpP24Bsy18PEdE0/img.png)
1. Algorithm with Math : 수학적 사고를 통한 컴퓨팅 사고를 할 수 있어야 한다. ① 순열 / 조합 ‣ 순열: n개 중에서 일부만을 선택하여 나열하는 것. 순서를 지키며 나열하는 것. ‣ 조합: 순서를 고려하지 않고 나열함. ‣ 카드 뽑기 [A, B, C, D, E]로 이뤄진 5장의 카드가 있습니다. 이 5장의 카드 중 3장을 선택하여 나열하려고 합니다. 이 때, 다음의 조건을 각각 만족하는 경우를 찾아야 합니다. → 순서를 생각하며 3장을 선택하는 조건을 만족하는 모든 경우의 수 // 경우의 수를 구하는 방법들 첫번째 나열하는 카드를 선택하는 방법에는 다섯 가지가 있다 첫번째 카드를 나열하고 난 다음, 두번째 카드를 선택하는 방법에는 네 가지가 있다 두번째 카드를 나열하고 난 다음, ..
9. [멱집합] 집밥이 그리워 김코딩은 몇 년의 해외 출장 끝에 본가에 내려왔습니다. 오랜만에 보는 김코딩의 얼굴에 반가웠던 부모님은 상다리가 부러질 정도로 음식을 만들었습니다. 감동의 재회도 잠시, 의자에 앉아 식사를 하려던 김코딩은 무엇부터 먹어야 될지 깊은 생각에 빠졌습니다. 정성스럽게 차려 주신 만큼, 최대한 많은 방법으로 다양하게 먹고 싶었기 때문입니다. 밥은 한 가지이며 반찬은 다수일 때, 밥과 함께 먹을 수 있는 반찬의 모든 경우의 수를 배열에 담아 리턴하세요. 입력 인자 1: sideDishes String 타입의 영문으로 된 반찬이 나열되어 있는 배열 출력 Array 타입을 리턴해야 합니다. 밥과 함께 먹을 수 있는 반찬의 모든 경우의 수가 담긴 배열 주의사항 반찬은 영문으로 작성이 되어..
5. [중복순열] rockPaperScissors 가위바위보 게임은 2인 이상의 사람이 동시에 '가위, 바위, 보'를 외치고 동시에 가위, 바위 또는 보 중에서 한 가지를 의미하는 손 모양을 내밀어 승부를 결정짓는 게임입니다. 세 판의 가위바위보 게임을 할 경우, 한 사람은 세 번의 선택(예. 가위, 가위, 보)을 할 수 있습니다. 세 번의 선택으로 가능한 모든 경우의 수를 구하는 함수를 작성합니다. 입력 없음 출력 2차원 배열(arr[i])을 리턴해야 합니다. arr[i]는 전체 경우의 수 중 한 가지 경우(총 세 번의 선택)를 의미하는 배열입니다. arr[i]는 'rock', 'paper', 'scissors' 중 한 가지 이상을 요소로 갖는 배열입니다. arr[i].length는 3 주의사항 최종적..