DGS Framework란? GraphQL은 API용 쿼리 언어이다. GraphQL을 사용하면 사용자가 원하는 데이터만을 가져올 수 있기 때문에 오버페칭(사용 하지 않는 데이터까지 가져오는 것)을 방지할 수 있다. DGS Framework는 스프링에서 graphql을 더 편리하게 사용하기 위해 넷플릭스에서 만든 SpringBoot 기반의 서버 프레임워크이다 dependency 추가 공식 문서를 보면 gradle 사용을 추천한다. DSG를 스프링에서 사용하기 위해서 아래와 같은 dependency를 추가해줘야 한다. implementation(platform("com.netflix.graphql.dgs:graphql-dgs-platform-dependencies:latest.release")) implem..
Postman이란? Postman은 API 테스트에 많이 사용되는 도구이다. Postman은 테스트를 위한 여러 기능을 제공하는데 API 자동화 테스트 기능도 제공한다. 테스트 작성 포스트맨에서 테스트 작성을 위해서 먼저 어떤 요청을 할 것인지 작성해야 한다. 그리고 요청에 대해 원하는 응답이 무엇인지 테스트 스크립트를 작성하면 된다. 1. Collection 생성 테스트를 위해서 컬렉션을 생성하면 한 번에 테스트를 묶어 관리하기도 편하고 한번에 실행할 수 있어서 편리하다. 컬렉션은 빨간삭 네모로 표시한 +버튼을 클릭하면 사진과 같이 New Collection이 생성된다. 생성된 컬렉션의 이름은 Rename을 통해서 변경하면 된다. 2. 요청 생성하기 생성한 컬렉션 위로 마우스 포인터를 가져가면 이름 옆..
추상 프로퍼티 interface User { val nickname: String } 코틀린 인터페이스에는 추상 프로퍼티를 선언할 수 있다. 인터페이스는 상태 저장이나 프로퍼티의 값을 조회할 수 있는 getter과 같은 기능이 없기 때문에 상속 받은 클래스에서 이를 구현해야 한다. 하위 클래스에서 추상 프로퍼티 구현 interface User { val nickname: String } class YoutubeUser(override val nickname: String): User class TwitterUser(val email: String): User { override val nickname: String get() = email.substringBefore('@') } class Tistory..
주 생성자(primary constructor) 다양한 생성자 정의 방법 class User(val nickname: String) 코틀린에서 클래스를 정의할 때 중괄호를 붙여주지 않아도 된다. 클래스 뒤에 오는 괄호로 둘러싸인 코드(val 선언에 해당하는 부분)가 주 생성자이다. 주 생성자는 생성자 파라미터 지정 및 생성자에 의해 초기화되는 프로퍼티 정의에 사용된다. 이 User 클래스를 풀어쓰면 아래와 같다. class User constructor(_nickname: String) { val nickname: String init { nickname = _nickname } } constructor은 주 생성자나 부 생성자 정의를 위해서 사용하는 키워드이다. init 키워드는 초기화 블록을 정의하는..
인터페이스 코틀린에서 인터페이스 정의를 위해서 interface 키워드를 사용한다. 코틀린 인터페이스에는 추상 메서드 뿐만 아니라 자바의 default method처럼 구현이 있는 메서드도 정의할 수 있다. 하지만 필드는 정의할 수 없다. interface Clickable { fun click() fun print() { println("click") } } class Button : Clickable { override fun click() { println("override click") } } 인터페이스 Clickable의 click은 추상 메서드이고 print는 구현된 메서드이다. 그리고 Button은 이 Clickable 인터페이스를 구현하고 있다. 자바에서는 추상 클래스를 상속할 때 exte..
중복 코드 제거하기 class User(val id: Int, val name: String, val address: String) fun saveUser(user: User) { if (user.name.isEmpty()) { throw IllegalArgumentException("Can't save user ${user.id}: empty Name") } if (user.address.isEmpty()) { throw IllegalArgumentException("Can't save user ${user.id}: empty Address") } } 위의 코드는 User를 객체를 저장할 때 name, address의 필드를 검사한다. name, address를 검증하는 조건문은 중복된다. 이렇게 반복..
확장 함수 확장 함수(extension function)는 클래스 밖에 선언되었지만 클래스의 멤버 메서드처럼 호출할 수 있는 함수이다. fun String.lastChar(): Char = this.get(this.length - 1) 위 함수는 마지막 문자열을 돌려주는 확장 함수의 예시이다. 확장 함수 작성시 함수가 어떤 클래스 것인지 receiver type을 지정해 주어야한다. 코드에서는 lastChar 앞에 있는 String이 receiver type이 된다. receiver object는 호출되는 대상이다. 코드에서 this가 이에 해당한다. "kotlin".lastChar() lastChar 함수는 위와 같이 사용할 수 있다. lastChar은 String 클래스 안에 작성되지는 않았지만 St..
split split은 자바에서 문자열을 분리할 때 사용한다. .으로 단어들이 구분된 문자열의 단어들을 분리할 때 split 메서드의 인자로 단순히 "."을 주면 안 된다. 왜냐하면 자바의 split은 파라미터로 정규식을 받기 때문에 "."은 모든 문자를 의미한다. 따라서 numbers의 길이는 0이 된다. 코틀린에서도 문자열을 분리할 때 split을 사용한다. IDE를 사용해서 보면 코틀린의 split은 파라미터로 regex가 아니라 delimiters를 받는다. 이 delimiters는 구분자이다. 따라서 위의 코드에서 numbers의 길이는 4가 된다. 코틀린에서정규식을 사용하기 위해서는 Regex 타입을 사용해야 한다. 따라서 toRegex 메서드를 사용하면 정규식을 사용할 수 있다. 코틀린의..
코틀린의 예외 처리 방식 코틀린에서 예외가 발생했을 때 호출 스택을 올라가면서 예외 처리가 나올 때 까지 예외를 다시 던진다. fun checkPercentage(percentage: Int) { if (percentage !in 0..100) { throw IllegalArgumentException( "퍼센트는 0이상 100이하의 숫자여야 합니다" ) } } 위의 함수는 인자로 받은 percentage의 값을 검사하는 함수이다. 코틀린에서는 예외를 던질 때 throw 키워드를 사용하며 자바와 달리 new 키워드를 붙이지 않는다. 예외가 발생하면 예외의 종류와 함께 메시지가 출력된다. val percentage = if(number in 0..100) number else throw IllegalArg..
코틀린의 while은 자바와 동일하다. for는 자바의 for-each의 형태와 비슷하고 for in 와 같은 형식을 가진다. while while (조건) { /*...*/ } do { /*...*/ } while (조건) 코틀린에는 while과 do-while 루프가 있고 둘 다 자바와 동일한 방법으로 사용하면 된다. for java에서 for문은 초깃값, 증가 값, 최종값이 있지만 코틀린은 없다. 대신 코틀린은 범위를 사용한다. 범위는 두 값으로 이뤄진 구간이고 시작값..끝값의 형태로 범위를 생성한다. 이 범위는 시작값과 끝값 모두 포함한다. fun main() { for (i in 1..100) { print("$i ") } } 위의 코드는 1부터 100까지 출력하는 코드이다. 양 끝값이 모두 출..
- Total
- Today
- Yesterday
- 코딩테스트
- go 특징
- string
- github
- pm.test
- python3
- postman
- postman tests
- Kotlin In Action
- graphql
- 1차 인터뷰
- 네이버 2022 공채
- java
- git
- Basic Type
- hashcode
- solidity
- mysql
- Squash and merge
- pm.expect
- 주생성자
- DGS Framework
- 코틀린
- downTo
- postman collection
- 확장 함수
- Python
- squash merge
- 2차 인터뷰
- Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |