Control Flow 자바와 유사하지만 또 다른 부분도 많다. 프로그래밍에서 흐름 제어만 잘해도 웬만한 문제는 해결할 수 있다고 생각한다. if-else var max = a if(a b){ max = a }else{ max = b } 자바와 거의 유사하다. 하지만 이를 식으로 표현할 수 있다. 이는 Kotlin에서만 가능하다. val max = if(a > b) a else b if식의 경우에는 반드시 else를 동반해야 에러가 발생하지 않는다. branches들은 블록을 가질 수 있고 블록의 마지막 구문이 반환 값이 된다. val max = if(a > b){ print("Choose a") a }else{ print("Choose b") ..
전체 글
Basic Types 코틀린에서 모든 것은 객체이다. 모든 것에 멤버 함수나 프로퍼티를 호출 가능하다. 숫자 Java의 숫자형과 거의 비슷하다. 하지만 Java에서 숫자형이던 char가 kotlin에서는 숫자 형이 아니다. Double: 64bit Float: 32bit Long: 64bit Int: 32bit Short: 16bit 리터럴 underscore를 사용하여 리터럴을 표현할 수 있다. val oneMillion = 1_000_000 val creditCardNumber = 1234_5678_1234_5678 긴 숫자들을 헷갈리지 않고 사용할 수 있을 것 같다. Representation Java 플랫폼에서 숫자형은 JVM primitive type으로 저장된다. Nullable이나 제네릭의 ..
Basic Syntax 기본 문법을 알아보자. 패키지 정의 패키지 정의는 파일 최상단에 위치한다. 디렉토리와 패키지를 일치시키지 않아도 된다. 이점은 자바와 다른 부분이다. 함수 정의 fun sum(a: int, b: int): int { return a + b } 자바와는 다르게 fun이라는 키워드를 이용하여 함수를 정의한다. ':' 문자가 나온 후 return 타입을 선언한다. 이는 생략될 수 있다. 또한 함수 몸체(body)가 식인 경우 return을 생략할 수 있다. fun sum(a:int, b: int) = a + b 위 두 함수는 같은 함수이다. return 할 값이 없는 경우 Unit(Object)을 return 한다. fun printKotlin(): Unit{ println("hello..
쿼리 수행 이전 포스트에서 작성한 코드들로 사용자 정보를 등록하고, 사용자가 등록한 댓글을 가져오는 서버를 만들어 보자. 우선 view부터 작성하자. 사용자 등록 결혼여부 등록 아이디 이름 나이 결혼여부 {% for user in users %} {{user.id}} {{user.name}} {{user.age}} {{'기혼' if user.married else '미혼'}} {% endfor %} 댓글 등록 등록 아이디 작성자 댓글 수정 삭제 views/sequelize.html {{ message }} {{ error.status }} {{ error.stack }} views/error.html 이제 sequelizejs 파일도 만들자. //사용자 이름을 눌렀을 때 댓글 로딩 document.que..
CRUD CRUD란 Create, Read, Update, Delete의 첫 글자를 딴 두문자어이다. 우선 CRUD를 하려면 테이블이 있어야 하니 테이블을 만들자. Create 데이터를 생성해서 데이터베이스에 넣는 작업이다. users 테이블에 데이터를 몇 개 넣어보자. INSERT INTO users (name, age, married, comment) VALUES ('홍길동', 24, 0, '자기소개1'); INSERT INTO users (name, age, married, comment) VALUES ('김철수', 32, 1, '자기소개2'); comments 테이블에도 넣어보자. 워크벤치를 사용하면 위와 같이 테이블에 직접 적고 하단에 apply를 누르면 insert가 완료된다. Read 조회는..
데이터 베이스 RDB의 대표격인 MySQL과 NoSQL의 대표인 몽고디비를 이용하여 서버 작업을 해볼 예정이다. 그전에 데이터베이스에 대한 기본적인 개념만 정리하고 실습해보자. 우선 MySQL을 설치해보자. https://dev.mysql.com/downloads/installer/ MySQL :: Download MySQL Installer Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8.0.23 2.4M (mysql-installer-web-community-8.0.23.0.msi..
라우팅 분리 라우터를 만들 때는 요청 메서드와 주소별로 분기 처리를 하느라 코드가 복잡해진다. express를 이용하면 라우팅을 깔끔하게 관리할 수 있다. routes 폴더를 만들고 그 안에 index.js로 관리해보자. const express = require('express'); const router = express.Router(); router.get('/', (req, res) => { res.send('Hello world!!'); }); module.exports = router; index.js const { Router } = require('express'); const express = require('express'); const router = express.Router(); ..