반응형

IT is True 547

[Kotlin] 코틀린 함수(Function) 개념 및 예제

💡 함수(function)는 이름이 있는 작은 프로그램과 같으며, 다른 함수에서 그 이름으로 실행하거나 호출(invoke)할 수 있다. 함수(Function) 함수는 일련의 동작을 묶어주며, 프로그램을 체계적으로 구성하고 코드를 재사용하는 가장 기본적인 방법이다. 함수에 정보를 전달하면, 함수는 그 정보를 이용해 계산을 수행하고 결과를 만들어낸다. 코틀린 함수의 기본적인 형태는 다음과 같다. fun 함수이름(p1: 타입1, p2: 타입2, ...): 반환타입 { 구현할 코드... return 결과 } p1과 p2는 함수에 전달할 파라미터(parameter)다. 각 파라미터는 괄호 안에 식별자와 타입으로 구성되어 있으며, 콜론(:)으로 구분한다. 파라미터 뒤에 함수가 생성할 결과의 타입을 나타내는 반환 타..

[Java] 프록시 패턴(Proxy Pattern)이란? - 개념 및 예제

프록시 패턴(Proxy Pattern) 프록시(Proxy)는 대리자, 대변인이라는 뜻을 가진 단어다. 대리자/대변인은 다른 누군가를 대신해 그 역할을 수행하는 존재를 말한다. 따라서 프록시 패턴은 특정 객체의 대리자나 대변인 역할을 하는 프록시 객체를 제공하는 디자인 패턴이다. 프록시 패턴을 사용함으로써 클라이언트는 특정 객체를 직접 참조하여 접근하는 것이 아닌 프록시 객체를 통해 상호작용한다. 프록시 객체의 장단점 장점 접근 제어 : 클라이언트가 실제 객체에 직접 접근하지 않도록 제어하여 객체의 접근을 관리하고 권한 검사 등을 수행할 수 있다. 지연 초기화 : 실제 객체의 생성 및 초기화를 지연시키는 데 사용하여 필요한 순간만에 생성 및 초기화하여 성능을 최적화할 수 있다. 캐싱 : 결과를 캐싱하여 중..

[Clean Code] 13. 동시성 - 클린 코드 정독하기

객체는 처리의 추상화다. 스레드는 일정의 추상화다. - 제임스 O. 코플리엔(James O. Coplien) - 동시성과 깔끔한 코드는 양립하기 어렵다. 스레드를 하나만 실행하는 코드는 짜기 쉽다. 겉으로 보기에는 멀쩡하나 깊숙한 곳에 문제가 있는 다중 스레드 코드도 짜기 쉽다. 이런 코드는 시스템이 부하를 받기 전까지 멀쩡하게 돌아간다. 동시성이 필요한 이유? 동시성은 결합(Coupling)을 없애는 전략이다. 즉, 무엇(What)과 언제(When)를 분리하는 전략이다. 스레드가 하나인 프로그램은 무엇과 언제가 서로 밀접하다. 흔히 단일 스레드 프로그램을 디버깅하는 개발자는 breakpoint를 정한 후 어느 지점에 걸렸는지 살펴보면서 시스템 상태를 파악한다. 무엇과 언제를 분리하면 애플리케이션 구조와..

[Kotlin] 코틀린 데이터 타입 이해하기

데이터 타입 코틀린에서 소수 5.5와 정수 5를 더해보자. fun main() { println(5.5 + 5) } // 출력 10.5 10.5라는 새로운 소수가 출력된다는 것은 이미 예상했을 것이다. 코틀린에서는 5.5와 같은 소수는 Double, 5와 같은 정수를 Int 타입이다. 또한 두 수를 더한 결과는 10.5라는 Double 타입으로 출력하게 된다. 따라서 코틀린은 타입을 사용해 5.5 + 5라는 식이 올바른 식인지 검증하고, Double 타입의 새 값을 만들어 연산 결과를 저장한다. 타입(Type)은 사용자가 데이터를 어떤 식으로 사용할지를 코틀린에게 전달해 준다. 데이터에 대해 적용할 수 있는 연산, 데이터의 의미, 타입에 속한 값을 저장하는 방식을 정의한다. 그렇다면 문자열 타입인 Str..

[Kotlin] 코틀린 var과 val 이해하기

식별자(Identifier) 식별자(변수명)는 프로그램을 이루는 요소를 가리키기 위해 사용한다. 데이터를 가리키는 식별자를 사용할 때는 가장 기본적으로 선택해야 하는 사항이 있다. var : 변할 수 있는 수(variable)의 약자로, 내용을 재대입할 수 있다. val : 값(value)의 약자로, 식별자의 값을 단 한 번만 초기화할 수 있다. 값을 초기화하고 나면 내용을 변경할 수 없다. 변할 수 있는 수 var var은 다음과 같이 정의한다. var 식별자 = 초기화 몇 가지 var 정의를 살펴보자. fun main() { var number = 8 var pi = 3.14 var words = "Hello Kotlin!" println(number) println(pi) println(words)..

[Java] 어댑터 패턴(Adapter Pattern)이란? - 개념 및 예제

어댑터 패턴(Adapter Pattern) 어댑터를 번역하면 변환기(Converter)라고 할 수 있다. 변환기의 역할은 서로 다른 두 인터페이스 사이에 통신이 가능하게 하는 것이다. 주변에서 흔히 볼 수 있는 변환기로 충전기가 있다. C to C 케이블을 바로 콘센트에 연결할 수 없기 때문에 충전기가 케이블과 콘센트를 연결해 주는 변환기 역할을 수행한다. 즉, 어댑터 패턴은 애플리케이션에서 서로 호환되지 않는 인터페이스를 가진 두 개체를 함께 동작할 수 있게 만들기 위해 연결하는 디자인 패턴이다. 주로 기존의 클래스나 라이브러리를 수정하지 않고, 다른 클래스나 라이브러리와 통합하기 위해 사용된다. 어댑터 패턴 예시 어댑터 패턴이 적용되지 않은 경우 ServiceA.Java public class Ser..

[OOP] 디자인 패턴(Design Pattern)이란? - 장점 및 종류

디자인 패턴(Design Pattern)이란? 디자인 패턴은 개발하면서 발생하는 반복적인 문제들을 어떻게 해결할 것인지에 대한 해결 방안으로 실제 현업에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 모범 사례(Best Practice)다. 이러한 디자인 패턴은 객체 지향 4대 특성(캡슐화, 상속, 추상화, 다형성)과 설계 원칙(SOLID)을 기반으로 구현되어 있다. 디자인 패턴의 장점 재사용성 : 반복적인 문제에 대한 일반적인 해결책을 제공하므로, 이를 재사용하여 유사한 상황에서 코드를 더 쉽게 작성할 수 있다. 가독성 : 일정한 구조로 정리하고 명확하게 작성하여 개발자가 코드를 이해하고 유지보수하기 쉽게 만든다. 유지보수성 : 코드를 쉽게 모듈화 ..

[OOP] 의존성 역전 원칙(DIP: Dependency Inversion Principle) 개념 및 예제

객체 지향 설계 원칙(SOLID) 객체 지향 언어의 등장 이후 수많은 시행착오와 베스트 프랙티스 속에서 객체 지향 설계 5가지 원칙이 등장했는데, 바로 SOLID다. SOLID는 로버트 C. 마틴(Robert C. Martin)이 2000년대 초반 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로 제시한 것을 마이클 페더스(Michael Feathers)가 두문자어로 소개한 것이다. SOLID는 다음 5가지 원칙의 앞 글자를 따서 부르는 이름이다. SRP(Single Responsiblity Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Inte..

[OOP] 인터페이스 분리 원칙(ISP: Interface Segregation Principle) 개념 및 예제

객체 지향 설계 원칙(SOLID) 객체 지향 언어의 등장 이후 수많은 시행착오와 베스트 프랙티스 속에서 객체 지향 설계 5가지 원칙이 등장했는데, 바로 SOLID다. SOLID는 로버트 C. 마틴(Robert C. Martin)이 2000년대 초반 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로 제시한 것을 마이클 페더스(Michael Feathers)가 두문자어로 소개한 것이다. SOLID는 다음 5가지 원칙의 앞 글자를 따서 부르는 이름이다. SRP(Single Responsiblity Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Inte..

[OOP] 리스코프 치환 원칙(LSP: Liskov Substitution Principle) 개념 및 예제

객체 지향 설계 원칙(SOLID) 객체 지향 언어의 등장 이후 수많은 시행착오와 베스트 프랙티스 속에서 객체 지향 설계 5가지 원칙이 등장했는데, 바로 SOLID다. SOLID는 로버트 C. 마틴(Robert C. Martin)이 2000년대 초반 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로 제시한 것을 마이클 페더스(Michael Feathers)가 두문자어로 소개한 것이다. SOLID는 다음 5가지 원칙의 앞 글자를 따서 부르는 이름이다. SRP(Single Responsiblity Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Inte..

반응형