2024/09 33

[디자인 패턴의 활용] 빌더 패턴이란?

💡1. 빌더 패턴에 대한 개념 이해 하고 코드로 구현할 수 있다. 빌더 패턴이란?빌더 패턴은 복잡한 객체를 단계적으로 생성할 수 있도록 도와주는 디자인 패턴입니다.특히 많은 옵션이나 매개변수를 가진 객체를 만들 때 유용합니다. 일반적인 생성자는 매개변수가 많아지면 복잡해지기 때문에, 빌더 패턴은 각 단계에서 선택적인 매개변수를 추가할 수 있게 해줍니다. (ex: 햄버거, 서브웨이)  햄버거 예제와 빌더 패턴햄버거를 주문할 때, 특정 업체에서는 다양한 재료 중에서 자신만의 햄버거를 만들 수 있습니다. 먼저 빵과 패티 같은 필수 재료를 선택하고, 그다음으로 치즈, 양상추, 토마토 같은 선택적인 재료를 추가합니다. 이 과정은 빌더 패턴과 매우 유사합니다.   필수 요소와 선택 요소 필수 요소: 햄버거를 만들..

스레드란? (스레드/멀티스레드)

스레드(Thread)란?스레드는 프로그램 내에서 동시에 실행될 수 있는 작업 단위예시하나의 프로그램(프로세스)은 여러 가지 일을 동시에 할 수 있는데, 그때 필요한 것이 스레드예시: 웹 브라우저웹 페이지를 로드하는 것.음악이나 영상을 재생하는 것.사용자가 입력하는 키보드를 받아들이는 것.웹 브라우저는 여러 가지 일을 동시에 해야 하니까, 여러 개의 스레드를 사용합니다.한 스레드는 웹 페이지를 읽고,또 다른 스레드는 사용자 입력을 처리하며,다른 스레드는 비디오나 음악을 재생하는 식입니다.이렇게 여러 작업이 동시에 진행될 수 있는 이유가 스레드 덕분입니다. 스레드와 프로그램의 차이프로세스(프로그램): 실행 중인 프로그램 자체를 말합니다. 예를 들어, 게임을 실행하면 그 게임이 하나의 프로세스입니다.스레드: ..

공부 노트 2024.09.25

[디자인 패턴의 활용] 싱글 톤 패턴 복습

(싱글톤 패턴 혼자 공부하기) 싱글톤 패턴이란?싱글톤(Singleton) 패턴은객체 지향 프로그래밍에서 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 디자인 패턴입니다. 이 패턴은 전역 변수를 사용하지 않고도, 애플리케이션 전반maze910.tistory.com💡1. 싱글톤 패턴에 대해서 알아보고 직접 코드를 작성할 수 있다.2. 싱글톤 패턴을 언제 어떻게 활용할 수 있는지 말할 수 있다.  사전기반 지식클래스와 객체: 자바에서 클래스는 객체를 생성하기 위한 틀입니다. 일반적으로 하나의 클래스에서 여러 객체를 생성할 수 있지만, 싱글톤 패턴은 단 하나의 객체만을 보장합니다.생성자(Constructor): 객체가 생성될 때 호출되는 메서드로, 싱글톤 패턴에서는 생성자를 외부에서 호출하지 못하도..

싱글톤 패턴이란?

싱글톤(Singleton) 패턴은객체 지향 프로그래밍에서 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 디자인 패턴입니다. 이 패턴은 전역 변수를 사용하지 않고도, 애플리케이션 전반에서 동일한 객체를 공유해야 하는 상황에서 유용합니다. 1. 싱글톤 패턴의 개념싱글톤 패턴의 핵심 개념은 클래스 인스턴스의 유일성을 보장하는 것입니다.즉, 해당 클래스의 인스턴스가 단 하나만 생성되고, 어디에서나 동일한 인스턴스에 접근할 수 있도록 하는 것입니다. 이를 위해 특정 클래스를 설계할 때, 인스턴스를 생성하는 과정과 접근하는 방식을 제어합니다. 2. 사용 목적싱글톤 패턴은 주로 다음과 같은 상황에서 사용됩니다.전역적 상태 관리: 애플리케이션의 전역적인 설정, 설정 값을 유지하는 객체에 사용됩니다.리소스 관..

공부 노트 2024.09.25

디자인 패턴의 활용

사전 기반 지식 [사전 기반 지식] S.O.L.I.D 원칙💡1. SOLID 원칙을 이해하고 실제 코딩에 적용할 수 있다. 2. 각 원칙을 설명할 수 있으며, 코드의 유지보수성을 높이는 방법을 배운다. 3. 객체지향 프로그래밍에서의 설계 개선 방법을 습득한다.maze910.tistory.com 디자인 패턴(Design Patterns)은 소프트웨어 개발에서 자주 반복되는 문제들을 해결하기 위해 만들어진 재사용 가능한 코드 설계 방법입니다.즉, 소프트웨어 설계 시 발생할 수 있는 문제를 효율적으로 해결하기 위한 설계의 모범 사례라고 할 수 있습니다. 장점개발자간의 원활한 소통소프트웨어 구조 파악이 용이재사용을 통한 개발 시간 단축설계 변경 요청에 대한 유연한 대처단점객체지향 설계에 대한 깊은 이해도가 필요..

[사전 기반 지식] S.O.L.I.D 원칙

💡1. SOLID 원칙을 이해하고 실제 코딩에 적용할 수 있다. 2. 각 원칙을 설명할 수 있으며, 코드의 유지보수성을 높이는 방법을 배운다. 3. 객체지향 프로그래밍에서의 설계 개선 방법을 습득한다. 로버트 C. 마틴(Robert C. Martin), 흔히 "아저씨 보브(Uncle Bob)"로 알려진 소프트웨어 엔지니어가 발표한 객체 지향 프로그래밍 설계 원칙입니다. 즉, SOLID 원칙이란 객체지향 설계의 5가지 중요한 원칙을 뜻하며, 유지보수성과 확장성을 높이기 위해 설계 과정에서 따르는 지침입니다. 사전 기반 지식객체지향 프로그래밍의 기본 개념 (클래스, 객체, 상속, 다형성 등)Java에서 인터페이스와 상속 사용 방법접근 제한자, 메서드 오버라이딩, 클래스 간 관계 등의 기본 개념  단일 책임..

람다식(Lambda expression)

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

JAVA 2024.09.13

6일차 - 로그인 소셜 로그인 api 연결

- 로그인 소셜 api 로그인 연결- 최초 로그인하면 우리 사이트 회원가입   UserController@Controller@RequestMapping("/user")@RequiredArgsConstructorpublic class UserController { private final UserService userService; private final HttpSession session; private final LoginAPIUtil loginAPI; /* * 소셜 로그인 * */ @GetMapping("/social") public String socialLogin(@RequestParam(name = "type") String type) { URI uri = null; switch (..

[Flutter] 원, 직사각형에 면적을 구하는 코드

✨ 공식▶️ 원 면적 구하기원에 면적 : 파이(3.14) * 반지름 * 반지름▶️ 직사각형 면적 구하기작사각형 면적 : 가로 * 세로 void main(){ // 문제 1 호출 print(calculateCircleArea(5.0)); // 문제 2 호출 print(calculateRectArea(3.0, 4.0));}// 1. 원 면적을 구하는 코드를 작성하시오// 2.직사각형을 면적을 구하는 코드를 작성하시오// 문제 1 - 함수 선언double calculateCircleArea(double radius){ // 원에 면적 : 파이(3.14) * 반지름 * 반지름 return 3.14 * radius * radius;}// 문제 2 - 함수 선언double calculateRectArea..

Flutter 2024.09.06

[Flutter] 간단한 이자를 계산하는 함수를 만들어 보자

▶️ 이자율 계산 공식이자 = 원금 * 이자율 * 시간 void main(){ calculateInterest(5000, 10, 1);}// 간단한 이자를 계산하는 함수를 만들어 보자// 이자 = 원금 * 이자율 * 시간void calculateInterest(double principal, double rate, double year){ double interest = (principal * rate * year) / 100; print("이자율 : ${interest}");}void calculateInterest(double principal, double rate, double year){ double interest = (principal * rate * year) / 100; pri..

Flutter 2024.09.06