2024/09 25

스프링 부트 핵심 콘셉트

사전 기반 지식1. 스프링 프레임 워크(Spring Framework)일반적인 정의 : 스프링 프레임 워크는 자바 플랫폼을 위한 강력한 애플리케이션 프레임워크이다. 객체 지향 프로그래밍의 원칙에 기반하여 애플리케이션을 구성하고 관리하는 방식으로, 주로 엔터프라이즈급 애플리케이션을 구축할 때 사용된다.설정 방식 : 스프링은 초기 설정이 복잡할 수 있다. xml 설정 파일이나 자바 기반의 설정 클래스를 통해 다양한 기능을 직접 구성해야 한다.기능 : 스프링은 의존성 주입(DI), AOP(관점 지향 프로그래밍), 트랜잭션 관리, 데이터 액세스, 웹 애플리케이션 개발, 보안 등 광범위한 기능을 제공한다. 그러나 이 모든 기능을 사용하기 위해서는 상당한 양의 설정 작업이 필요하다.2. 스프링 부트(Spring B..

Spring boot 2024.09.26

싱글 톤 패턴

사전 기반 지식클래스와 객체 : 자바에서 클래스는 객체를 생성하기 위한 틀이다. 일반적으로 하나의 클래스에서 여러 객체를 생성할 수 있지만, 싱글톤 패턴은 단 하나의 객체만을 보장한다.생성자(Constructor) : 객체가 생성될 때 호출되는 메서드로, 싱글톤 패턴에서는 생성자를 외부에서 호출하지 못하도록 제한한다.정적 변수와 메서드 : 싱글톤 패턴에서 주로 사용되는 정적(static) 멤버에 대한 이해가 필요하다. 싱글톤 패턴싱글톤 패턴은 특정 클래스의 인스턴스를 하나만 생성하고, 이를 전역적으로 접근할 수 있도록 하는 디자인 패턴이다.주요 목적은 시스템 전체에서 공통된 리소스를 공유하거나, 객체 생성을 제한하여 메모리 낭비를 줄이기 위함이다. package singleton;// 1. 정적 변수를 ..

Java 2024.09.26

콜백 메서드 만들어 보기

사전 기반 지식인터페이스 : Java 인터페이스의 개념을 이해하고, 메서드를 선언하고 구현하는 방법을 알고 있어야 한다.익명 클래스 : 클래스 정의 없이 인터페이스를 바로 구현하는 익명 클래스의 사용법을 알고 있어야 한다.콜백 메서드콜백 메서드는 특정한 작업이 완료되었을 때 또는 특정 이벤트가 발생했을 때 호출되는 메서드이다.콜백 메서드는 주로 비동기 작업이나 이벤트 기반 시스템에서 사용된다. 콜백 메서드를 활용하면 동작을 정의하고 나중에 실행할 수 있기 때문에, 프로그램이 더 유연해지고 모듈화 될 수 있다. 시나리오 코드 1 - 버튼 클릭 이벤트 처리우리는 컴퓨터나 스마트폰에서 버튼을 누를 때 마다 어떠한 이벤트가 발생한다. 이 이벤트는 버튼이 눌렸을 때 동작할 콜백 메서드를 통해 처리된다. 예를 들어..

Java 2024.09.26

어댑터 패턴

사전 기반 지식객체 지향 프로그래밍(OOP) : 클래스와 객체의 개념, 상속과 인터페이스에 대한 기본적인 이해.다형성 : 상위 클래스나 인터페이스를 통해 다양한 하위 클래스를 처리하는 능력.호환성 문제 : 서로 다른 인터페이스를 가진 클래스 간의 호환성 문제 해결을 위해 어댑터 패턴을 사용하는 상황을 이해해야 한다.어댑터 패턴어댑터 패턴은 호환되지 않는 인터페이스를 가진 클래스들을 함께 동작할 수 있도록 변환해주는 디자인 패턴이다. 즉, 기존 클래스의 인터페이스가 요구사항과 맞지 않을 때, 새로운 인터페이스를 기존 클래스에 맞추어 주는 역할을 한다. 이를 통해 호환성 문제를 해결하고, 기존 코드를 수정하지 않고도 새로운 코드와 결합할 수 있다. 시나리오 코드 1package adapter;public c..

Java 2024.09.26

팩토리 패턴

사전 기반 지식객체 지향 프로그래밍 : 클래스와 객체 생성에 대한 기본 개념.추상화 : 구현과 인터페이스를 분리하는 개념.다형성 : 상위 클래스나 인터페이스를 통해 다양한 하위 클래스를 처리하는 능력팩토리 패턴팩토리 패턴은 객체 생성 로직을 감추고, 클라이언트(사용자)가 어떤 객체를 생성할지 결정만 하면 내부적으로 그 객체를 생성하는 패턴이다. 예를 들어 자판기는 다양한 음료를 제공하는데, 사용자가 음료를 선택하면 자판기가 내부에서 해당 음료를 준비해준다. 사용자는 음료가 준비되는 과정을 신경 쓸 필요 없이, 자판기에 요청만 하면 음료가 나오는 형태이다.이것이 팩토리 패턴의 핵심이다. 팩토리 패턴을 사용하면 객체 생성 과정이 클라이언트 코드로부터 분리되어, 클라이언트는 필요한 객체만 요청하고, 생성 과정..

Java 2024.09.26

빌더 패턴

빌더 패턴빌더 패턴은 복잡한 객체를 단계적으로 생성할 수 있도록 도와주는 디자인 패턴이다. 특히 많은 옵션이나 매개변수를 가진 객체를 만들 때 유용하다. 일반적인 생성자는 매개변수가 많아지면 복잡해지기 때문에, 빌더 패턴은 각 단계에서 선택적인 매개변수를 추가할 수 있게 해준다. 햄버거 예제와 빌더 패턴햄버거를 주문할 때, 특정 업체에서는 다양한 재료 중에서 자신만의 햄버거를 만들 수 있다. 먼저 빵과 패티같은 필수 재료를 선택하고, 그 다음으로 치즈나 양상추, 토마토 같은 선택적인 재료를 추가한다. 이 과정은 빌더 패턴과 매우 유사하다. 필수 요소와 선택 요소필수 요소 : 햄버거를 만들기 위해선 반드시 있어야 하는 재료가 있다. 예를 들어, 빵과 패티는 꼭 필요한 요소이다. 빌더 패턴에서는 객체를 만들..

Java 2024.09.26

디자인 패턴의 활용

디자인 패턴(Design Patterns)은 소프트웨어 개발에서 자주 반복되는 문제들을 해결하기 위해 만들어진 재사용 가능한 코드 설계 방법이다. 즉, 소프트웨어 설계 시 발생할 수 있는 문제를 효율적으로 해결하기 위한 설계의 모범 사례라고 할 수 있다. 장점개발자 간의 원활한 소통 소프트웨어 구조 파악이 용이 재사용을 통한 개발 시간 단축 설계 변경 요청에 대한 유연한 대처 단점 객체지향 설계에 대한 깊은 이해도가 필요 간단한 문제에 대해 디자인 패턴을 적용하는 것이 오히려 더 복잡하고 비효율적일 수 있다. 모든 문제에 대해 디자인 패턴을 적용하는 것은 적절하지 않다.디자인 패턴은 크게 생성(Creational), 구조(Structural), 행동(Behabioral)으로 구분할 수 있다.  생성 ..

Java 2024.09.26

S.O.L.I.D 원칙

S.O.L.I.D 원칙 로버트 C. 마틴(Robert C. Martin), 흔히 "아저씨 보브(Uncle Bob)"로 알려진 소프트웨어 엔지니어가 발표한 객체 지향 프로그래밍 설계 원칙이다. 즉, SOLID 원칙이란 객체지향 설계의 5가지 중요한 원칙을 뜻하며, 유지보수성과 확장성을 높이기 위해 설계 과정에서 따르는 지침이다. 사전 기반 지식 객체지향 프로그래밍의 기본 개념 (클래스, 객체, 상속, 다형성 등) Java에서 인터페이스와 상속 사용 방법 접근 제한자, 메서드 오버라이딩, 클래스 간 관계 등의 기본 개념  단일 책임 원칙 (Single Responsibility Principle, SRP) 설명 : 클래스는 하나의 책임만 가져야 한다. 하나의 책임이란, 클래스가 변경되어야 하는 이유가 하나..

Java 2024.09.25

람다식(Lambda expression)

1. 람다식의 기본 개념과 문법2. 기존 자바 코드를 람다식 표현법을 사용하여 작업3. 함수형 인터페이스(Functional Interface)4. 자바 8 버전부터 제공하는 interface Function 활용 자바에서 람다식(Lambda expression)은 함수형 프로그래밍 개념을 도입한 것으로, 익명 함수(이름이 없는 함수)를 간결하게 표현할 수 있게 해 준다. 람다식은 자바 버전 8(2014년 출시)부터 사용할 수 있다. 추가로 자바 8은 함수형 프로그래밍을 지원하기 위한 여러 기능을 함께 도입했다.즉, 람다식을 사용하면 코드가 간결해지고, 특히 컬렉션이나 스트림 API를 처리할 때 매우 유용하다. 람다식은 주로 간단한 작업을 한 줄의 코드로 처리할 때 많이 사용하며, 예를 들어, 리스트의 ..

Java 2024.09.13

dart(함수, 메서드)

함수 특정 작업을 수행하는 코드 블록. 반복적인 작업을 함수로 정의해서 사용 가능하며 코드의 재사용성 및 가독성을 높여 준다.returntype functionName(parameter1,parameter2, ...){ // function body}리턴타입 함수이름(매개면수1, 매개변수) { // 수행 할 코드를 작성 } void main () { calculateInterest(5000, 10, 1);}// 간단한 이자를 계산하는 함수를 만들어 보자.// 이자(interest) = 원금(principal) * 이자율(rate) * 시간(year)void calculateInterest(double principal, double rate, double year) { double interest..

Flutter 2024.09.06