분류 전체보기 70

[HTTP] 주요 상태코드 정리

HTTP 상태 코드클라이언트와 서버 간의 요청과 응답 상태를 나타낸다.    크게 100번대에서 500번대의 상태 코드가 있다.1xx : 요청을 수신했으며 처리가 계속되고 있음2xx : 클라이언트의 요청이 성공적으로 처리되었음3xx : 요청을 완료하려면 추가 행동이 필요함4xx : 클라이언트의 요청에 오류가 있음5xx : 서버에서 요청을 처리하지 못했음     1xx Informational (정보 응답) 거의 사용하지 않음   2xx Successful (성공 응답)200 OK : 요청이 성공적으로 처리되었음201 Created : 요청으로 인해 새로운 리소스가 생성되었음. 생성된 리소스는 응답의 Location 헤더 필드로 식별 가능하다.202 Accepted : 요청이 수락되었지만 처리 완료는 보장..

CS공부 2025.01.18

[Spring] 주요 어노테이션 기능 정리

@Configuration설정 클래스를 정의할 때 사용Bean을 등록하고 구성할 클래스에 사용 @BeanSpring 컨테이너에 Bean을 등록개발자가 직접 관리해야 하는 객체를 Spring 컨테이너에 등록할 때 사용 @Autowired의존성 주입(DI)을 처리필요한 Bean을 자동으로 주입 @ComponentScan특정 패키지를 스캔하여 @Component, @Service, @Repository, @Controller가 붙은 클래스를 Bean으로 등록설정 클래스에서 컴포넌트를 스캔하도록 설정 @FilterComponentScan 시 특정 클래스를 포함하거나 제외원하는 대상을 스캔하거나 제외할 때 사용 @ComponentSpring Bean으로 등록Spring에서 관리해야 할 일반적인 객체에 사용 @Co..

Spring 2025.01.16

[Python] 백준 14725 개미굴

문제개미는(뚠뚠) 오늘도(뚠뚠) 열심히(뚠뚠) 일을 하네.개미는 아무말도 하지 않지만 땀을 뻘뻘 흘리면서 매일 매일을 살길 위해서 열심히 일을 하네.한 치 앞도(뚠뚠) 모르는(뚠뚠) 험한 이 세상(뚠뚠) 그렇지만(뚠뚠) 오늘도 행복한 개미들!우리의 천재 공학자 윤수는 이 개미들이 왜 행복한지 궁금해졌다.행복의 비결이 개미가 사는 개미굴에 있다고 생각한 윤수는 개미굴의 구조를 알아보기 위해 로봇 개미를 만들었다.로봇 개미는 센서가 있어 개미굴의 각 층에 먹이가 있는 방을 따라 내려가다 더 이상 내려갈 수 없으면 그 자리에서 움직이지 않고 신호를 보낸다.이 신호로 로봇 개미는 개미굴 각 층을 따라 내려오면서 알게 된 각 방에 저장된 먹이 정보를 윤수한테 알려줄 수 있다.로봇 개미 개발을 완료한 윤수는 개미굴..

백준풀이 2025.01.12

SOLID - 좋은 객체 지향 설계의 5가지 원칙

Clean Code로 유명한 로버트 C. 마틴이 소프트웨어 개발에서 발생하는 설계 문제를 해결하고자 객체지향 설계 원칙을 체계적으로 정리하였다.   S : Single Responsibility Principle - 단일 책임 원칙O : Open/Closed Principle - 개방/폐쇄 원칙L : Liskov Substitution Principle - 리스코프 치환 원칙I : Interface Segregation Principle - 인터페이스 분리 원칙D : Dependency Inversion Principle - 의존 역전 원칙   이 5가지 원칙에 대해 살펴보자   Single Responsibility Principle - 단일 책임 원칙클래스는 하나의 책임만 가져야 하며, 클래스가 변경..

[Spring] 스프링 웹 개발 기초(정적 컨텐츠, MVC와 템플릿 엔진, API)

웹 브라우저에서 받은 요청을 스프링에서 처리할 때,1. 정적 컨텐츠로 반환2. MVC와 템플릿 엔진을 이용하여 반환3. API를 이용하여 반환하는 방법이 있다.   정적 컨텐츠정적 컨텐츠란 서버에서 별도의 처리 없이 있는 그대로 클라이언트(브라우저)로 전달되는 파일들이다. 폴더 구조를 보면 resources 폴더 아래 static 폴더가 있다.여기에 html 파일을 넣어두기만 하면 http://localhost:8080/hello-static.html라고 쳤을 때 해당 파일이 보인다.  Spring에서는 웹 브라우저에서 요청이 왔을 때 우선 컨트롤러에서 찾아보고, 없으면static 폴더에 있는 컨텐츠를 보여주는 것이다.          MVC와 템플릿 엔진MVC구조란 Model, View, Control..

Spring 2024.12.24

[Spring] 프로젝트 시작하기 (IntelliJ)

인텔리제이 환경에서 스프링 부트 프로그램을 개발하려면 어떻게 해야할까?  우선 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트를 생성한다.https://start.spring.io    들어가면 이런 화면이 뜰 텐데 여기서 Project Metadata를 알맞게 설정하고 GENERATE 버튼을 누르면 된다.  요즘은 Maven 보다는 Gradle을 주로 쓴다고 한다.버전에서 SNAPSHOT은 아직 만들고 있는 버전이기 때문에 그렇지 않은 버전 중 가장 높은 버전을 선택하였다.Dependencies에는 일단 Spring Web, Thymeleaf으로 하였다.Spring Web - 웹 애플리케이션 개발을 지원, RESTful 웹 서비스와 MVC(Model-View-Controller) 아키텍처를 구축하..

Spring 2024.12.22

[JAVA] 효율적인 코딩을 도와주는 Stream API

Stream이란?컬렉션 데이터를 다룰 때 효율적이고 직관적인 방법을 제공하는 API다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것Stream을 통해 데이터의 필터링, 정렬, 변환, 집계 등을 함수형 프로그래밍 스타일로 구현할 수 있다.    특징단일 사용 : Stream은 한 번만 사용 가능한 단일 데이터 흐림이다. 한 번 사용한 Stream은 재사용 할 수 없으며 새로운 Stream을 생성해야 한다.내부 반복 : 기존의 외부 반복(for-each)을 대체하여 내부적으로 데이터 처리를 반복하는 방식이다.지연 연산 : Stream에서 filter(), map() 같은 중간 연산은 즉시 실행되지 않고 최종 연산이 호출될 때 실행된다. 불필요한 연산을 줄일 수 있다.병렬 처리 기능 : parallelS..

JAVA 2024.10.31

[MVC패턴] 역할을 어떻게 나눠야할까?

지난번에 MVC 패턴에 대해 간단히 정리해뒀었다.MVC 패턴을 직접 적용해보며 Model-View-Controller 도 다양한 기준에 따라 나눠지고 사용된다는 것을 깨달았다.  https://sou330.tistory.com/56 MVC 패턴이 무엇일까?MVC (Model-View-Controller) 소프트웨어 설계 패턴 중 하나로 주로 웹 애플리케이션에서 많이 사용된다.이 패턴은 애플리케이션의 구조를 세 가지 역할로 분리하여 유지보수성과 확장성을 높여준다.sou330.tistory.com    MVC 패턴을 구성할 때 클래스들을 나누는 기준코드의 역할과 책임을 명확히 구분하여 유지보수와 확장성을 높이기 위함각각의 요소는 서로의 역할을 침범하지 않고 독립적으로 동작하도록 설계된다.    1. Cont..

[Python] 백준 12100 2048(Easy)

문제2048 게임은 4×4 크기의 보드에서 혼자 즐기는 재미있는 게임이다. 이 게임에서 한 번의 이동은 보드 위에 있는 전체 블록을 상하좌우 네 방향 중 하나로 이동시키는 것이다. 이때, 같은 값을 갖는 두 블록이 충돌하면 두 블록은 하나로 합쳐지게 된다. 한 번의 이동에서 이미 합쳐진 블록은 또 다른 블록과 다시 합쳐질 수 없다. (실제 게임에서는 이동을 한 번 할 때마다 블록이 추가되지만, 이 문제에서 블록이 추가되는 경우는 없다) 이 문제에서 다루는 2048 게임은 보드의 크기가 N×N 이다. 보드의 크기와 보드판의 블록 상태가 주어졌을 때, 최대 5번 이동해서 만들 수 있는 가장 큰 블록의 값을 구하는 프로그램을 작성하시오.https://www.acmicpc.net/problem/12100   난..

백준풀이 2024.10.29