본문 바로가기
728x90
반응형

Java&Spring34

[디자인패턴] 싱글톤 패턴 싱글톤 패턴 (Singleton Pattern)1. 싱글톤 패턴이란?싱글톤 패턴은 클래스의 인스턴스를 단 하나만 생성하고, 어디서든 이 인스턴스에 접근할 수 있도록 하는 디자인 패턴입니다.주로 다음과 같은 경우에 사용됩니다:전역적으로 하나의 객체만 존재해야 하는 경우객체 간의 공유 자원 관리가 필요한 경우싱글톤 패턴의 구현 과정1. 정적 변수를 선언private static SingleTon instance;클래스 내에 유일한 인스턴스를 저장하기 위해 static으로 선언합니다.외부에서 직접 접근하지 못하도록 private 접근 제어자를 사용합니다.2. 생성자를 private로 선언private SingleTon() {}private 생성자를 선언하여 외부에서 new 키워드를 통해 인스턴스를 생성하지 못.. 2025. 1. 9.
[ 디자인패턴 ] 콜백 메서드 직접 만들어 보기 학습 목표 1. 콜백 메서드의 개념과 동작 방식을 이해할 수 있다. 2. 콜백 메서드를 활용한 코드를 작성할 수 있다. 3. 콜백 메서드가 필요한 상황과 그 장점을 설명할 수 있다. 사전 기반 지식인터페이스: Java 인터페이스의 개념을 이해하고, 메서드를 선언하고 구현하는 방법을 알고 있어야 합니다.익명 클래스: 클래스 정의 없이 인터페이스를 바로 구현하는 익명 클래스의 사용법을 알고 있어야 합니다.콜백 메서드 개념콜백 메서드는 특정한 작업이 완료되었을 때 또는 특정 이벤트가 발생했을 때 호출되는 메서드입니다. 콜백 메서드는 주로 비동기 작업이나 이벤트 기반 시스템에서 사용됩니다. 콜백 메서드를 활용하면 동작을 정의하고 나중에 실행할 수 있기 때문에, 프로그램이 더 유연해지고 모듈화될 수 있습니다.  .. 2025. 1. 9.
[ 디자인패턴 ] 디자인 패턴이란? 디자인 패턴 디자인 패턴(Design Patterns)은 소프트웨어 개발에서 자주 반복되는 문제들을 해결하기 위해 만들어진 재사용 가능한 코드 설계 방법입니다. 즉, 소프트웨어 설계 시 발생할 수 있는 문제를 효율적으로 해결하기 위한 설계의 모범 사례라고 할 수 있습니다.장점개발자간의 원활한 소통소프트웨어 구조 파악이 용이재사용을 통한 개발 시간 단축설계 변경 요청에 대한 유연한 대처단점객체지향 설계에 대한 깊은 이해도가 필요간단한 문제에 대해 디자인 패턴을 적용하는 것이 오히려 더 복잡하고 비효율적일 수 있습니다.모든 문제에 대해 디자인 패턴을 적용하는 것은 적절하지 않습니다.디자인 패턴은 크게 생성(Creational), 구조(Structural), 행동(Behavioral)으로 구분할 수 있습니다... 2025. 1. 9.
[ Java ] BufferedReader , BufferedWriter ,StringTokenizer BufferedReader - Scanner 와 유사 - 버퍼를 이용해서 읽는 함수, Scanner 보다 빠른 속도 - 버퍼가 가득차거나, 개행문자가 나타나면, 버퍼의 내용을 한번에 전송함 - String 으로 고정되어 입력 받음 , 데이터 가공이 필요함 ※ 예외처리 필요함 main 클래스 옆에 throw IOException를 작성해야함 또는 try&catch 를 활용하여 예외처리도 가능 import java.io.* BufferedReader br = new BufferedReader(new InputStreamReader( System.in)); String s = bf.readLine(); // Stirng int i = Integer.parseInt(bf.readLine()); //Int Buf.. 2023. 8. 6.
[Spring] AOP 관점지향 프로그래밍 AOP 에 대해서 자세하게 알아보겠습니다. AOP란? Aspect -Oriented Programming 관점 지향 프로그래밍 - 문제를 바라보는 관점을 기준으로 프로그래밍 하는 기법을 말한 다. 핵심 로직을 구현한 코드에 공통 기능 관련 코드가 포함되어 있지 않기 때문에 적용해야 할 공통 기능이 변경되더라도 핵심 로직을 구현한 코드를 변경할 필요가 없다. 단지 공통기능 코드를 변경 한 뒤 핵심 로직 구현 코드에 적용만 하면 된다. 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍입니다. 스프링의 IoC가 결합도와 관련된 기능이라면 AOP는 응집도와 관련된 기능이라고 할 수 있다. AOP 용어 • Aspcet : 반복되어 사용되는 로직, 여러 객체에 공통으로 적용되는 공통 관심 사항 • ta.. 2023. 4. 4.
[Spring] spring? Spring 핵심 기능 1. The IoC Container 2. Resources 3. Validation, Data Binding, and Type Conversion 4. Spring Expression Language (SpEL) 5. Aspect Oriented Programming with Spring 6. Null-safety 7. Logging The IoC Container IoC (Inversion of Control) "전통적인 제어 흐름에 비추어볼 때, 제어 흐름을 반대로 뒤집은 것" - Wikipedia 제어 반전, 제어의 반전, 역제어는 프로그래머가 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게 되는 소프트웨어 디자인 패턴을 말한다. 라이브러리를 사용할 때는 내 코드가 .. 2023. 4. 4.
[Java&Spring] opp 정렬체 구현 bubble sort란? - 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 - 인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환한다. 선택 정렬과 기본 개념이 유사하다. =>여러가지 자료형을 정렬하고 싶고, 정렬한 것을 비교하기 위해 제네릭 타입을 사용하겠습니다. H-jin789/java-practice1: java-oop (github.com) GitHub - H-jin789/java-practice1: java-oop java-oop. Contribute to H-jin789/java-practice1 development by creating an account on GitHub. github.com 의존성 주입(Dependency injection) 방법으로 bubb.. 2023. 3. 27.
[JAVA기초] JAVA란? 프로그래밍 이란? 프로그래밍: 컴퓨터가 일을 수행 하도록 프로그래밍 언어로 명령어 집합(프로그램)을 만드는 일 컴파일 : 프로그래밍 언어를 컴퓨터가 실행 가는한 기계어로 만드는 일 컴파일러 : 기계어로 바꾸어 주는 프로그램 ( ex. 자바 컴파일러, gcc ) 자바 프로그래밍 자바의 역사 : 1991년 제임스 고슬링을 비롯한 선 마이크로 시스템스 연구원들이 처음 개발 가전, 휴대용 장치에 사용되는 소프트웨어 언어로 개발됨. 안정성이 중요 자바 프로그래밍의 특징 플랫폼에 영향을 받지 않으므로 다양한 환경에서 사용할 수 있다. 객체 지향 언어이기 때문에 유지보수가 쉽고 확장성이 좋다. 프로그램이 안정적이다. 풍부한 기능이 제공되는 오픈 소스이다. 객체 지향 프로그래밍이 무엇인가? 프로그램의 구현을 시간의 흐.. 2023. 3. 13.
todo 리스트 만들기 3 - model,repository model은 todo 리스트에 들어갈 뼈대를 생성해주는 것이다. 1. model package 생성 2.todoEntity package org.example.model; import lombok.AllArgsConstructor; import lombok.Data; import lombok.Generated; import lombok.NoArgsConstructor; import javax.persistence.*; @Data @Entity @NoArgsConstructor @AllArgsConstructor public class TodoEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nu.. 2023. 1. 27.
todo 리스트 만들기 2 intellij - gradle 로 기본틀 만들기 의존성은 아래의 링크를 들어가서 필요한 depedency를 찾아서 가져옵니다. https://mvnrepository.com/ plugins { id 'org.springframework.boot' version '2.4.2' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-rest' -> rest api 를 구현하기 위한 라이브러리 implementation 'org.springframework.boot:spring-boot-s.. 2023. 1. 27.
728x90
반응형