💡 객체 지향 프로그래밍의 5가지 핵심 원칙인 SOLID에 대하여 학습하였습니다.객체지향 프로그래밍 5 설계 원칙 (SOLID)SOLID란 객체 지향 프로그래밍을 하면서 지켜야하는 5대 원칙으로 SRP, OCP, LSP, DIP, ISP의 앞글자를 따서 만들었습니다.SOLID 원칙을 철저히 지키면서 시간이 지나도 변경에 용이하고, 유지보수와 확장성이 쉬운 소프트웨어를 개발하는 것이 중요합니다!SRP(Single Responsibility Principle): 단일 책임 원칙OCP(Open Closed Principle): 개방 폐쇄 원칙LSP(Listov Substitution Principle): 리스코프 치환 원칙ISP(Interface Segregation Principle): 인터페이스 분리 원..
💡 객체지향 & 소프트웨어에서 중요한 응집도와 결합도에 대하여 학습하였습니다.소프트웨어 모듈 독립성소프트웨어에서 크고 복잡한 문제가 발생했을 때, 문제를 작은 부분으로 쪼개어서 하나씩 풀어나가야 합니다.이런 경우 큰 문제를 작은 부분으로 쪼개어 해결하는 것을 모듈화라고 하며, 소프트웨어를 각 기능별로 나누어진 소스 단위를 뜻합니다.독립적으로 컴파일 가능한 프로그램 혹은 하나의 함수나 클래스도 모듈이 될 수 있습니다.좋은 소프트웨어 일수록 모듈의 독립성이 높다라고 표현할 수 있습니다.좋은 모듈화는 목적에 맞는 기능만으로 모듈을 나누게 됩니다.각각의 모듈은 주어진 기능만을 독립적으로 수행하기 때문에 재사용성이 높고 코드의 이해와 수정이 용이합니다.해당 모듈을 수정하더라도 다른 모듈에 끼치는 영항이 적으며,..
💡 코틀린에서는 간단하고, 다양하게 생성자를 정의할 수 있습니다. 생성자에 대하여 학습하였습니다. 주생성자 (Primary Constructor)class Movie(val name: String, val time: String)위와 같이 클래스 이름 옆에 괄호로 둘러싸인 코드를 주 생성자라고 합니다.생성자 파라미터를 지정하고, 그 파라미터에 의해 초기화되는 프로퍼티를 정의하는 목적에 쓰입니다.생성자 파라미터 : 클래스의 생성자를 호출할 때 전달되는 값객체가 생성될 때 필요한 초기 설정 값을 제공class Movie(name: String)프로퍼티 : 클래스에 정의된 변수로, 클래스의 속성을 나타냄객체의 상태를 나타내며, 객체가 존재하는 동안 값을 유지하고 사용 가능class Movie(val name..
💡 Kotlin을 주 언어로 활용하면서, 특징과 사용하는 이유에 대하여 한 번 학습하고 넘어가는 것이 필요할 것 같았습니다.Kotlin자바를 만든 회사인 IntelliJ IDEA의 개발사 JetBrains에서 공개한 언어로, 자바와 100퍼센트 호환되며 자바보다 더 간결하고 많은 기능을 추가한 언어입니다.또한 절차 지향적인 문법 위주의 코드에서 벗어나, 사람과 가까운 객체지향 언어 중 더욱 사람의 언어와 비슷하게 코드를 구사하도록 개발된 언어입니다.Kotlin의 큰 장점가독성과 접근성객체지향 언어이면서 변수 유형 유추 및 손쉬운 캡슐화직관적인 기능을 갖는 함수를 탑재생산성을 높일 수 있는 언어개발 언어 트렌드코드의 재사용을 통해 반복적인 코드를 최소화유연하고 빠른 수정유지 보수 편리한 언어 형식자바와 ..
Kotlin Extensionhttps://kotlinlang.org/docs/extensions.html Extensions | Kotlin kotlinlang.orgKotlin은 클래스에서 상속하거나 새로운 디자인 패턴을 사용하지 않고도 새로운 기능으로 클래스나 인터페이스를 확장할 수 있는 기능을 제공합니다.이는 Extensions 라는 특수 선언을 통해 수행됩니다.수정할 수 없는 타사 라이브러리의 클래스 또는 인터페이스에 대한 새 함수를 작성할 수 있으며,함수를 마치 원래 클래스의 메서드인 것처럼 일반적인 방법으로 호출할 수 있습니다.이를 extension function이라고 하며, 기존 클래스에 대한 새 속성을 정의할 수 있는 extension properties도 있습니다. extension ..
5장 가독성 높은 코드를 작성하라서술형 명칭 사용서술적이지 않은 이름은 코드를 읽기 어렵게 만든다.주석문으로 서술적인 이름을 대체할 수 없다.주석문에 대한 유지보수도 필요해진다.클래스가 수백 줄의 길이를 가진다면, 주석을 찾기 위해 스크롤 해야한다.중복된 주석문은 유해할 수 있다.코드가 수행하는 작업을 설명하는 주석문을 추가한 경우 코드가 변경하면 주석문을 수정해야 하는 상황이 생긴다.주석문이 이해하기 어려운 코드가 있다.String generateId(String[] data) { // data[0]은 성이고, data[1]부터는 이름이다}헬퍼 함수를 사용하여 가독성이 높은 코드를 쉽게 작성할 수 있다.String generateId(String[] data) { return firstName(dat..