본문 바로가기
728x90
반응형

Backend45

[ 디자인패턴 ] 디자인 패턴이란? 디자인 패턴 디자인 패턴(Design Patterns)은 소프트웨어 개발에서 자주 반복되는 문제들을 해결하기 위해 만들어진 재사용 가능한 코드 설계 방법입니다. 즉, 소프트웨어 설계 시 발생할 수 있는 문제를 효율적으로 해결하기 위한 설계의 모범 사례라고 할 수 있습니다.장점개발자간의 원활한 소통소프트웨어 구조 파악이 용이재사용을 통한 개발 시간 단축설계 변경 요청에 대한 유연한 대처단점객체지향 설계에 대한 깊은 이해도가 필요간단한 문제에 대해 디자인 패턴을 적용하는 것이 오히려 더 복잡하고 비효율적일 수 있습니다.모든 문제에 대해 디자인 패턴을 적용하는 것은 적절하지 않습니다.디자인 패턴은 크게 생성(Creational), 구조(Structural), 행동(Behavioral)으로 구분할 수 있습니다... 2025. 1. 9.
REST API란? 1. REST API의 탄생REST는 Representational State Transfer라는 용어의 약자로서 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 최초로 소개되었습니다. 로이 필딩은 HTTP의 주요 저자 중 한 사람으로 그 당시 웹(HTTP) 설계의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 합니다.  2. REST 구성쉽게 말해 REST API는 다음의 구성으로 이루어져있습니다. 자세한 내용은 밑에서 설명하도록 하겠습니다. 자원(RESOURCE) - URI 행위(Verb) - HTTP METHOD 표현(Representations)  1) URI는 정보의 자원을 표현해야 한다... 2025. 1. 3.
[HTTP] 1. 인코딩과 포트 인코딩이란?컴퓨터의  모든 데이터를 0과 1로 구성된다. “사과”가 사과를 가리키는 데 약속이 필요하듯, 0과 1로 우리의 문자를 표현하는 것도 일종의 약속 덕분입니다. 이런 약속들을 특별히 인코딩(Encoding) 표준이라고 부르는데, 대표적으로 아스키(Ascii)와 유니코드(Unicode)가 있습니다.   아스키는 7비트 데이터에 대한 인코딩 표준입니다. 이를 이용하면 알파벳과 특수 문자 등을 표현할 수 있습니다. 예를 들어, 아스키에서 1 한 개, 0 다섯 개, 1 한 개를 이어 붙이면 “A”로 해석됩니다. 이에 따라 “1000001”이라는 데이터를 아스키로 변환하면 “A”가 됩니다. 컴퓨터가 개발된 초기에는 각 문자권마다 고유의 인코딩 표준을 사용했습니다. 영어는 아스키, 한글은 CP-949, E.. 2025. 1. 2.
[웹페이지 구현하기] 1. 프로젝트 개요 웹페이지 구현하기1. 프로젝트 개요2. 프로젝트 수행단계1~4번까지는 피그마를 통해 전달받아 그것을 기본으로 html 제작 및 프로그래밍 구현할 예정입니다.3. 정보구조 2024. 9. 1.
[ 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.
728x90
반응형