목록분류 전체보기 (259)
차근차근
0. 제목 백준 10989 수 정렬하기 3 BOJ 10989 수 정렬하기 3 C++ 10989 수 정렬하기 3 1. 문제 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 풀이 계수 정렬(Counting Sort)를 사용하는 문제이다. 버블 소트와 같은 것을 사용하면 시간 초과가 난다. 계수 정렬은 수의 범위가 작을 때 사용하기에 적합하다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ..
0. 제목 백준10825 국영수 BOJ 10825 국영수 C++ 10825 국영수 1. 문제 https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 이름은 알파벳 대소문자로 이루어진 문자열이고, 길이는 10자리를 넘지 않는다. www.acmicpc.net 2. 풀이 이름, 국어성적, 영어성적, 수학성적을 pair를 사용하여 묶어준다. sort함수에서 쓰일 정렬 기준 함수인 comp를 주의해서 구현하면 된다. 3. 코드 1 2 ..
0. 관계 데이터 모델 수학에서의 집합(set)과 릴레이션(realtion) 이론에 기초 일반 사용자 입장에서는 테이블(table) 형태로 생각 모든 데이터를 테이블 형태로 저장 및 관리 테이블의 열(column) = 필드(field) = 관계 데이터 모델의 애트리뷰트(attribute) 테이블의 행(row) = 레코드(record) = 관계 데이터 모델의 튜플(tuple) 학번 이름 학년 학과 1234 홍길동 2 컴퓨터공학과 5678 김철수 3 기계공학과 위 테이블은 학생 테이블(릴레이션)이다. attribute는 학번, 이름, 학년, 학과 record 또는 tuple은 (1234, 홍길동, 2, 컴퓨터공학과), (5678, 김철수, 3, 기계공학과) 1. 용어 정리 테이블(table) = 릴레이션(r..
0. react-native init 프로젝트 구조 react-native init test로 프로젝트를 생성하면 다음과 같은 구조를 볼 수 있다. android/ 안드로이드 네이티브 모듈을 담당하고 있다. 카카오톡으로 로그인하기처럼 react-native에서 지원하지 않는 기능들을 사용하기 위해서는 네이티브 모듈을 직접 구현해야 한다. ios/ ios의 네이티브 모듈을 담당하고 있다. node_modules 프로젝트와 관련된 모듈들이다. npm을 통해 설치한 모듈이 이곳에 위치한다. App.js 실제 디바이스에 표시되는 코드가 이곳에서 작성된다. App.js를 열어보면 View, Text 컴포넌트와 'Welcome to React Native!"같은 문자열이 있다. app.json 프로젝트의 이름과 앱..
0. Vanilla ToDo 간단한 ToDo에 Redux를 도입하는 과정을 잘 알기위해 먼저 다음과 같이 세팅한다. index.html index.js 위와 같이 코드를 작성한 후 실행시켜보면 항목을 추가할 때마다 ADD_TODO라는 action이 일어남을 콘솔에서 확인할 수 있다. 1. State Mutation Mutation은 변형이라는 뜻을 가지고 있다. Mutation의 예시를 보겠다. 아래코드에서는 friends를 변형한 것이다. 첫번째 friends에는 1명이 있었는데 두번째 friends에는 2명이 있다. 새로운 state를 create하고 그 새로운 state를 return할 것이다. mutation개념을 적용시킨 것은 다음과 같다. 이전 state를 가져온 후 text를 추가하여 ret..
0. 오류 react-native run-android를 실행했더니 다음과 같이 JAVA_HOME 오류가 떴다. zsh을 사용하고 있어서 JAVA_HOME을 vi ~/.zshrc 에서 설정하였다. 다음과 같이 설정이 되어있었지만 여전히 오류가 떴다. 1. 해결 현재 jdk13.0.1.jdk로 설정되어 있던 것을 8로 바꾸었더니 해결되었다. jdk8을 다음과 같이 설치하였다. 설치 후 vi ~/.zshrc 를 실행하여 JAVA_HOME을 다음과 같이 바꿔주었다. 다시 react-native run-android를 실행 이제 다음과 같은 에뮬레이터 화면을 볼 수 있다.
0. Vanilla Counter Redux는 기본적으로 Javascript Application들의 state(상태)를 관리하는 방법이다. React뿐만 아니라 Angular, Vue.js, Vanilla Javascript 등 원하는 곳에 쓸 수 있다. 먼저 project를 시작하기 위해 다음과 같은 명령어를 실행한다. 디렉터리가 만들어지고 해당 디렉터리로 이동한다. redux를 사용하지 않는 버전을 보기 위하여 /src/index.js에서 간단하게 코드를 작성한다. yarn start 명령어를 실행하면 다음과 같은 화면을 볼 수 있다. 1. Store & Reducer redux를 사용하는 버전에 대하여 살펴보겠다. 먼저 redux를 사용하기 위해 yarn add redux(혹은 npm instal..
0. 변수 값을 담는 상수, 변수는 val, var로 시작한다. val은 final로 값을 바꿀 수 없다. var는 값을 바꿀 수 있다. 타입을 정해줄때는 var hello2: String = "hello world2" 와 같이 :뒤에 붙여준다. 그런데 var hello2 = "hello world2"는 타입이 String임을 짐작할 수 있다. 따라서 :String을 생략할 수 있다. var hello3: String? 에서 ?는 null값이 올 수 있음을 알려주는 기호이다. 1. 배열 & 반복 & 캐스팅 listOf를 사용하여 배열을 만들 수 있다. 수정이 불가능하다. mutableListOf를 사용하여 배열을 만들 수 있다. 수정이 가능하다. 반복문의 기본 형태 : for(요소 in 배열) for문의..
0. 라우팅 라우팅은 한 곳에 소스가 너무 많아지면 복잡해져 관리가 힘들어지므로 분리해주는 것이다. API가 index.js 파일 내에 모두 들어가 있으면 복잡하고 각 목적에 맞지 않다. Rest API는 웹에서 API 통신을 할 때 규약으로 정형화해서 깔끔하게 구분이 가능하도록 만든 후 범용성이나 확장성에 유용하게 하려는 구조로 만드는 API이다. API는 뭘까? API는 TV의 리모콘과 같다. 볼륨 키우기와 같은 버튼(기능)의 집합이 리모콘이고 그것이 API라고 볼 수 있다. 1. API 설계 GET : 가져오기 POST : 추가 PUT : 수정 DELETE : 삭제 설계 : 특정 URL 주소로 API접속을 요청하면 각 주소에 따라 각각 CRUD되게 할 것이며, 그 방식은 RestAPI에서 사용하는 ..
0. 샘플소스 구성 폴더는 다음과 같이 구성되어 있다. index.js는 실제 logic이 들어가는 문법파일(javascript)이다. /view/pages/index.ejs는 화면을 나타내는 파일이다. ejs는 기존 정적인 값만 담을 수 있던 html에서 동적인 값(db에서 가져온 값 등)도 함께 표시할 수 있는 템플릿 엔진이다. package.json은 nodejs에서 필요한 파일들이 json형식으로 나열되어 있다. 1. DB 세팅 MongoDB를 사용할 것인데 MongoDB는 NoSQL이다. 테이블 형식이 아닌 JSON형식을 사용한다. DB에 접속하는 방법은 3가지가 있다. 콘솔창에서 명령어로 접속하는 방법 웹으로 접속(확인하는 용도) 코드로 접속(이 앱에서는 코드로 접속하는 방법을 사용하겠다.) ..