분류 전체보기
-
Kotlin in Action: 6.2 코틀린의 원시 타입Book/Kotlin in Action 2022. 11. 25. 00:25
6.2 코틀린의 원시 타입 코틀린은 원시 타입과 래퍼 타입을 구분하지 않는다. 6.2.1 원시 타입: Int, Boolean 등 자바는 원시 타입과 참조 타입을 구분한다. 원시타입의 변수에는 그 값이 직접 들어가지만, 참조 타입의 변수에는 메모리상의 객체 위치가 들어간다. 이 방법으로 원시 타입의 값을 더 효율적으로 저장하고 여기저기 전달할 수 있지만, 그런 값에 대해 메소드를 호출하거나 컬렉션에 원시 타입 값을 담을 수는 없다. 만일 참조 타입이 필요한 경우 특별한 래퍼 타입등으로 원시 타입 값을 감싸서 사용한다. 정수의 컬렉션을 정의하려면 Collection가 아니라 Collection를 사용하는 것처럼 말이다. 코틀린은 원시 타입과 래퍼 타입을 구분하지 않으므로 항상 같은 타입을 사용한다. 다음 예..
-
Kotlin in Action: 6장 코틀린 타입 시스템: 6.1 Nullable(널 가능성)Book/Kotlin in Action 2022. 11. 24. 23:48
6. 코틀린의 타입 시스템(type system) 자바와 비교하면 코틀린의 타입 시스템은 코드의 가독성을 향상시키는 데 도움이 되는 몇가지 특성을 새로 제공한다. 그런 특성으로는 Nullable type과 읽기 전용 컬렉션이 있다. 또한 코틀린은 자바 타입 시스템에서 불필요하거나 문제가 되던 부분을 제거했다. 배열 지원이 그런 부분에 속한다. 6.1 널가능성(Nullable) 널 가능성은 NullPointerException 오류를 피할 수 있게 돕기 위한 코틀린 타입 시스템의 특성이다. 코틀린을 비롯한 최신 언어에서 null에 대한 접근 방법은 가능한 한 이 문제를 실행 시점에서 컴파일 시점으로 옮기는 것이다. 널이 될 수 있는지 여부를 타입 시스템에 추가함으로써 컴파일러가 여러 가지 오류를 컴파일 시..
-
[Java] Effective Java: 제 2장 (1) 생성자 대신 정적 팩터리 서드를 고려하라Book/Effective Java 2022. 11. 22. 22:52
이 글은 이펙티브 자바 책에 대해 정리하며 책에 있는 부분 중 모르는 내용을 긁어와서 정리하는 글입니다. 모르는 부분이 아니더라도 번역체라 이해하기 힘든 부분을 정리합니다. 1. 정적 팩터리 메서드(static factory method) 클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자이다. - 여기서 클래스와 인스턴스, 그리고 객체의 개념에 대해서 살펴보자. 객체 지향 언어란 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어이다. 클래스의 개념 - 객체를 만들어 내기 위한 설계도 혹은 틀 - 연관되어 있는 변수와 메서드의 집합 객체의 개념 = 클래스의 인스턴스 - 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다. - 소프트웨어 세계에 ..
-
[IntelliJ] Cannot resolve ... 오류 해결ヽ(✿゚▽゚)ノ 2022. 11. 21. 07:30
어제 밤부터 인텔리제이가 클래스가 import가 안돼서 열심히 구글링해보았는데 Cannot resolve symbol 에러로 검색해보니 IntelliJ IDEA에서 자주 보이는 에러라고 한다. 해결 방법 1번째 방법 : 빌드를 다시 한다. 상단 메뉴바 Build > Clean Project 하고 나서, Build > Rebuild Project 2번째 방법: 캐시를 비우고 재실행한다. 상단 메뉴바 File > Invalidate Caches / Restart… 를 선택 -> IDE가 재실행된다. 3번째 방법: Gradle을 Refresh 해준다. 상단 메뉴바 View > Tool Windows > Gradle에 들어간다. -> 프로젝트명을 마우스 우클릭하여, Refresh Gradle Dependenci..
-
[Project] 가상착용 쇼핑몰 백엔드 설계 프로젝트 : 서버에 파일 업로드하기ヽ(✿゚▽゚)ノ 2022. 11. 20. 16:26
가상착용 쇼핑몰 백엔드를 설계하는 프로젝트에 관한 게시글입니다. 이 프로젝트에서는 여러 엔티티 중 상품 엔티티에 주목해 설계할 예정입니다. 프로젝트 구현 기능 - 회원 : 소셜로그인 - 상품: 상품 등록 / 상품 조회(상품 가상 착용)/ 상품 상세페이지/ 상품 카테고리/ 상품 링크 연결 - 좋아요: 상품 좋아요 - 브랜드: 브랜드 회원 가입, 로그인 및 로그아웃, 브랜드 승인 1. 초기 ERD 설계 프로젝트의 초기 아이디어는 상품을 판매하는 링크를 연결해주고, 그 상품의 모델을 가상 착용하는 식으로 설계했기 때문에 주문 엔티티는 따로 없게 설계했다. ManyToMany를 사용하지 않기 위해 카테고리 연령별과 안경 종류별로 나누었다. 2. 상품 모델 업로드 2.1 Spring initializer로 스프링..
-
데이터베이스란?BACKEND/DataBase 2022. 11. 19. 21:54
데이터베이스(DataBase)란? (Oracle 대한민국 문서를 참고하였습니다.) 데이터베이스는 조직체의 응용 시스템들이 공유해서 사용하는 운영데이터들이 구조적으로 통합된 모임이다. 데이터베이스의 구조는 사용되는 데이터 모델에 의해 결정된다. 데이터베이스는 구조화된 정보, 또는 데이터의 조직화된 모음으로서 일반적으로 컴퓨터 시스템에 전자적으로 저장된다. 데이터베이스를 관리하는 이러한 미들웨어를 데이터베이스 관리 시스템(DBMS: Database Management System)이라고 한다. 데이터베이스 시스템 개요 - 데이터베이스 스키마(내포 intension) : 정체적인 데이터베이스 구조를 뜻하며 자주 변경되지는 않음. 데이터 베이스의 모든 가능한 상태를 미리 정의 - 데이터베이스 상태 (extens..
-
Kotlin in Action: 5.5 수신 객체 지정 람다 : with와 applyBook/Kotlin in Action 2022. 11. 18. 09:21
코틀린 람다에서는 수신 객체를 명시하지 않고 람다의 본문 안에서 다른 객체의 메소드를 호출할 수 있게 해주는 지정 람다 기능이 있다. 1. with 함수 코틀린 에서는 with라는 라이브러리 함수를 통해 어떤 객체의 이름을 반복하지 않고도 그 객체에 대해 다양한 연산을 수행할 수 있는 기능을 제공한다. fun alphabet(): String { val stringBuilder = StringBuilder() return with(stringBuilder) { for (letter in 'A'..'Z') { this.append(letter) } append("\nNow I know the alphabet!") this.toString() } } with 함수는 첫 번째 인자로 받은 객체를 두 번째 인자..
-
Kotlin in Action: 5.4 자바 함수형 인터페이스 활용Book/Kotlin in Action 2022. 11. 18. 09:05
코틀린 프로그래밍을 하다보면 다루는 API의 대부분이 자바로 작성된 API이다. 그래서 이번 장에서는 자바 API를 사용할 때 람다를 인자로 전달하는 방법에 대해서 자세히 알아본다. 단일 추상 메소드(SAM) 인터페이스(함수형 인터페이스라고도 부른다)는 추상 메소드를 하나만 가지고 있는 인터페이스를 뜻한다. 자바 API에는 Runnable이나 Callable과 같은 함수형 인터페이스와 그런 함수형 인터페이스를 활용하는 메소드가 많다. 자바8 이전의 자바에서는 메소드에게 인자로 넘기기 위해 무면 클래스의 인스턴스를 만들어야 했다. 코틀린은 함수형 인터페이스를 인자로 취한 자바 메소드를 호출할 때 (무명 내부 클래스 인스턴스 대신) 람다를 넘길 수 있게 해준다. 더보기 자바와 달리 코틀린에는 제대로 된 함수..