목록분류 전체보기 (67)
devseop08 님의 블로그
객체지향 프로그래밍 개념절차지향과 객체지향절차지향 프로그래밍 방식은 데이터와 프로세스를 별도의 모듈에 위치시키는 프로그래밍 방식이다.데이터와 프로세스를 별도의 모듈에 위치시킴으로 인해서 생기는 문제함수(프로세스)가 데이터에 너무 의존적인 방식이기 때문에 데이터 구조가 변경될 시 함수의 수정이 필요하고, 이로 인한 변경의 영향을 지역적으로 고립시키기가 어렵다.프로그램 확장과 수정이 어려운 구조이다.현실 세계의 비즈니스 모델과 괴리가 발생하는, 즉 우리의 직관에 위배되는 프로그램 구조를 갖게 된다. 즉, 이해하기 어렵다.절차지향 프로그래밍 방식의 문제점들을 개선하기 위해 객체지향 프로그래밍 방식이 도입됐다.객체지향 프로그래밍 방식은 데이터와 프로세스를 동일한 모듈 내부에 위치시키는 프로그래밍 방식이다.객체지..
1. 배열동일한 타입의 데이터를 저장할 수 있는 공간을 연속적으로 여러 개 묶어 하나의 이름을 갖는 변수로 만들고,각각의 원소를 첨자로 지정하는 것복합 데이터 타입(compound data type)개별 요소들에 직접적인 접근특징고정된 길이연속된 메모리 주소에 저장인덱스를 통해 접근 가능인덱스는 0부터 시작, 마지막 인덱스는 size - 1out of bound 체크를 하지 않는다.초기화가 필요하다.효율적인 데이터 구조요소를 빠르게 읽는데 유리배열 선언과 초기화int scores[5];배열 길이를 const 상수로 정의할 수 있다.const int CONSTANT_VALUE = 5;int scores[CONSTANT_VALUE];배열 길이를 const 상수가 아닌 변수로 정의하는 것은 불가하다.int v..
C++ 프로그램 빌드컴파일 : 소스 파일을 컴퓨터가 이해할 수 있는 명령으로 번역하는 과정목적 파일: 컴파일러가 하나의 번역 단위를 컴파일한 결과 만들어진 목적 코드를 저장하는 파일라이브러리: 프로그램을 작성할 때 사용할 수 있는 클래스나 값, 함수 등을 모아놓은 것링크 : 목적 파일과 라이브러리를 연결하여 실행 파일을 만드는 작업컴파일과 링크를 통해 실행 파일을 만드는 전 과정 통틀어 프로젝트 빌드란 한다.C++ 프로그램 기본 구조#include int main(){ // 표준 출력 스트림으로 문장을 출력 std::cout 전처리 지시문C++ 소스 프로그램은 컴파일 되기 전에 먼저 전처리 과정을 거친다.전처리는 소스 프로그램을 가공하여 실제로 컴파일러가 번역할 소스 프로그램을 만드는 과정으로..
람다식 또는 람다는 기본적으로 다른 함수에 널길 수 있는 작은 코드 조각을 의미한다.람다를 사용하면 쉽게 공통 코드 구조를 라이브러리 함수로 뽑아낼 수 있다.람다가 무엇인지 알아보자람다 함수의 전형적인 사용 패턴을 보고 코틀린에서 그런 사용 패턴의 모습을 논의해보자멤버 참조와 람다의 관계를 살펴보자람다를 자바 API나 라이브러리와 함께 사용하는 방법을 살펴보자함수형 인터페이스를 사용하는 방법을 살펴보자수신 객체 지정 람다를 알아보자5.1 람다식과 멤버 참조5.1.1 람다 소개: 코드 블록을 값으로 다루기코드에서 일련의 동작을 변수에 저장하거나 다른 함수에 넘겨야 하는 경우가 자주 있다.익명 내부 클래스를 사용하면 코드를 함수에 넘기거나 변수에 저장할 수 있기는 하지만 상당히 번거롭다.이 문제를 해결하는 ..
코드 가독성을 살려주는 코틀린 핵심 기능 : 널이 될 수 있는 타입 지원7.1 NullpointerException을 피하고 값이 없는 경우 처리: 널 가능성코틀린을 포함한 최신 언어에서 null에 대한 접근 방법은 가능한 이 문제를 실행 시점에서 컴파일 시점으로 옮기는 것이다.널이 될 수 있는지 여부를 타입 시스템에 추가함 => 여러 가지 오류를 컴파일 시 미리 감지코틀린에서 null이 될 수 있는 값을 어떻게 표기하고 코틀린이 제공하는 도구가 그런 null이 될 수 있는 값을 어떻게 처리하는지 살펴보자널이 될 수 있는 타입 측면에서 코틀린과 자바 코드를 어떻게 함께 사용할 수 있는지 살펴보자7.2 널이 될 수 있는 타입으로 널이 될 수 있는 변수 명시코틀린과 자바의 첫 번째이자 가장 중요한 차이는 코..
코틀린의 클래스와 인터페이스는 자바 생성자와는 다르다.(ex. 인터페이스에 프로퍼티 선언이 들어갈 수 있다.)자바와 달리 코틀린 선언은 기본적으로 public(가시성 변경자)이며 final(접근 변경자)이다.가시성 변경자는 외부 접근에 관한 기준, 접근 변경자는 상속에 관한 기준내포 클래스는 기본적으로 내부 클래스가 아니다 => 코틀린 내포 클래스에는 외부 클래스에 대한 암시적 참조가 없다.생성자의 경우 짧은 주 생성자 구문으로도 거의 모든 경우를 잘 처리할 수 있지만 복잡한 초기화 로직을 수행하는 경우를 대비한 완전한 문법도 있다.프로퍼티도 마찬가지로 간결한 프로퍼티 구문으로도 충분히 제 몫을 하지만 필요하면 접근자로 직접 구현할 수 있다.클래스를 data 클래스로 선언하면 컴파일러가 일부 표준 메서드..
3장에서는 코틀린이 함수 선언과 호출을 코틀린이 어떻게 개선했는지 살펴본다.추가로 확장 함수와 프로퍼티를 사용해 혼합 언어 프로젝트에서 코틀린의 이점을 모두 살릴 수 있는 방법을 살펴본다.3.1 코틀린에서 컬렉션 만들기코틀린에서 컬렉션 만들기val set = setOf(1, 7, 53)val list = listOf(1,7, 53)val map = (1 to "one", 7 to "seven", 53 to "fifty-three")코틀린은 표준 자바 컬렉션 클래스를 사용한다.fun main(){ val set = setOf(1, 7, 53) val list = listOf(1,7, 53) val map = (1 to "one", 7 to "seven", 53 to "fifty-three"..
2.1 기본 요소 : 함수와 변수코틀린이 어떻게 변경 가능한 데이터보다 변경할 수 없는 불변 데이터 사용을 권장하는지와 왜 불변 데이터가 더 좋은 것인지 살펴본다.2.1.1 첫 번째 코틀린 프로그램 작성 : Hello, World!fun main(){ println("Hello, world!") }함수 선언 시, fun 키워드를 선언한다.함수를 모든 코틀린 파일의 최상위 수준에 정의할 수 있으므로 클래스 안에 함수를 넣어야 할 필요는 없다.최상위에 있는 main 함수를 어플리케이션의 진입점으로 지정할 수 있다.코틀린 표준 라이브러리는 수많은 표준 자바 라이브러리 함수에 대해 더 간결한 구문을 사용할 수 있게 해주는 래퍼를 제공한다.println도 래퍼 중 하나이다.2.1.2 파라미터와 반환값이 있는..