반응형

분류 전체보기 175

아키텍처

아키텍처란?시스템의 구조, 행위, 뷰를 정의하는 개념적 모형시스템의 각 컴포넌트가 무엇이며 어떻게 상호작용하는지 정보가 어떻게 교환되는지를 설명한다.⇒ 서비스의 동작 원리를 나타낸다.구성요소구성 요소(Components)예: 모듈, 클래스, 서비스, 데이터베이스, 외부 API 등구성 요소 간의 관계(Interactions)예: 어떤 컴포넌트가 다른 컴포넌트에 어떻게 의존하고 통신하는가설계 원칙과 패턴예: 계층형 아키텍처, MVC, MSA(Microservice Architecture), 이벤트 기반 구조 등아키텍처가 중요한 이유구조화 및 표준화아키텍처는 프로젝트의 구조를 명확하게 정의하여 개발자들이 일관된 방식으로 시스템을 구축하도록 한다.유지보수 및 확장성아키텍처는 시스템의 변화에 쉽게 대응할 수 있도..

CS/개발상식 2025.05.13

[백준 2473 자바] 세 용액

[백준 2473 자바] 세 용액문제여러 종류의 산성 용액과 알칼리성 용액을 보유하고 있다.각 용액에는 그 용액의 특성을 나타내는 하나의 정수가 주어진다.산용 용액은 1부터 1,000,000,000까지의 양의 정수, 알칼리성 용액의 특성은 -1부터 -1,000,000,000까지의 음의 정수로 나타낸다. 같은 양의 세 가지 용액을 혼합한 용액의 특성값은 혼합에 사용된 각 용액의 특성값의 합으로 정의한다.세 용의 혼합하여 특성값이 0에 가장 가까운 용액을 만들려고 할 때0에 가장 가까운 용액을 만드는 세 용액을 찾는 프로그램을 작성하시오. 입력첫째 줄에는 전체 용액이 수 n이 입력된다 n은 3 이상 5000 이하의 정수이다.둘째 줄에는 용액의 특성값을 나타내는 n개의 정수들이 빈값을 사이에 두고 주어진다.모..

리팩토링

리팩토링이란?동작을 유지한 체 코드 내부 구조를 개선하는 작업가독성을 높이고 유지보수 하기 좋도록 바꾸는 과정코드 중복을 최소화버그를 쉽게 찾을 수 있도록 한다.리팩토링이 필요한 시기중복된 코드가 많을때하나의 함수 또는 클래스가 너무 많은 일을 할 때이해하기 어려운 코드일 때하나의 기능을 수정할 때마다 여러 메서드를 수정해야 한다면 하나의 클래스가 하나의 책임만 가질 수 있게 개선새로운 기능 추가하기 어려울 때비슷한 버그가 계속 발생할 때테스트가 어렵거나 불가능할 때리팩토 기법1. 메서드 추출(Extract Method)중복된 코드, 긴 메서드, 들을 별도의 메서드로 분리해 가독성과 재사용성을 높이는 기법2. 변수 이름 변경(Rename Variable)의미 없는 변수명 의미 있는 이름으로 바꿔 코드의 ..

CS/개발상식 2025.05.05

REST API란

API란?클라이언트,서버와 같은 서로 다른 프로글챔에서 요청과 음답을 주고 받을 수 있게 만든 체계REST API란?REST API는 웹에서 데이터를 주고 받기 위한 아키텍처 스타일이며 규약을 의미한다.자원을 URI 로 표현하고 , HTTP 메서드(GET,POST,PUT,DELETE 등) 을 통해 자원을 다룬다.특징상태 비저장성(무상태)각 요청이 독립적으로 처리되기 때문에 서버 확장서과 유지보수에 유리응답은 주로 JSOIN 형식으로 전달캐싱을 활용할 수 있어 성능면에서 우수하다. (이게 무슨 의미지 확인)계층화클라이언트/서버 구조REST 구성요소자원(Resource) : HTTP URL자원에 대한 행위 : HTTP Method자원에 대한 표현 : Representation1.자원(Resource) : H..

CS/네트워크 2025.05.03

[백준 3184 자바] 양

3184번 양문제미키의 뒷마당에는 특정 수의 양이 있다. 늑대는 마당에 들어와 양을 공격했다.마당은 행과 열로 이루어진 직사각형 모양이다.글자 '.' (점)은 빈 필드를 의미하며, 글자 '#'는 울타리, 'o'는 양 'v'는 늑대를 의미한다.한 칸에서 수평, 수직만으로 이동하며 울타리를 지나지 않고 다른 칸으로 이동할 수 있다면 두 칸은 같은 영역 안에 속해 있다고 한다.마당에서 탈출 할 수 있는 칸은 어떤 영역에도 속하지 않는다고 간주한다. 양은 늑대에게 싸움을 걸 수 있고 영역 안에 양의 수가 늑대의 수보다 많다면 이기고, 늑대를 우리에서 쫓아낸다.그렇지 않다면 늑대가 그 지역 안의 모든 양을 먹는다.맨 처음 모든 양과 늑대는 마당 안 영역에 존재한다.아침이 도달했을 때 살아남은 양과 늑대의 수를 출..

HTTP/HTTPS 란?

HTTP란?웹 상에서 클라이언트와 서버가 자원을 주고받기 위해 사용하는 통신 규약입니다.HTTP는 HyperText Transfer Protocol의 약자로, 하이퍼텍스트 기반의 데이터를 전송합니다.OSI 7 계층 중 애플리케이션 계층에 속하며, TCP/IP 위에서 동작합니다.비연결성(Connectionless) 기반의 프로토콜로, **요청(Request)**과 **응답(Response)**을 통해 통신합니다.HTTP 작동 방식HTTP는 요청/응답 구조로 동작합니다.클라이언트가 서버에 요청을 보내면, 서버는 그에 대한 응답을 보내고 즉시 연결을 종료합니다.이처럼 매 요청은 독립적으로 이루어지며, 이전의 상태를 유지하지 않습니다.HTTP의 단점비연결성 (Connectionless)요청과 응답이 완료되면 서..

CS/네트워크 2025.05.02

[백준 5639 자바] 이진 검색 트리

[백준 5639 자바] 이진 검색 트리문제이진 검색 트리는 다음과 같은 세 가지 조건을 만족하는 이진트리이다.노드의 왼쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 작다.노드의 오른쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 크다.왼쪽, 오른쪽 서브트리도 이진 검색 트리이다.전위 순회 (루트-왼쪽-오른쪽)은 루트를 방문하고, 왼쪽 서브트리, 오른쪽 서브 트리를 순서대로 방문하면서 노드의 키를 출력한다. 후위 순회 (왼쪽-오른쪽-루트)는 왼쪽 서브트리, 오른쪽 서브트리, 루트 노드 순서대로 키를 출력한다. 예를 들어, 위의 이진 검색 트리의 전위 순회 결과는 50 30 24 5 28 45 98 52 60이고, 후위 순회 결과는 5 28 24 45 30 60 52 98 50이다.이진 검색 트리를..

[네트워크] 쿠키와 세션

쿠키와 세션을 사용하는 이유HTTP의 가장 큰 특징인 무상태성과 비연결성이다.HTTP의 통신 결과에대해서 이전 통신 상태가 남아있지 않게 된다.이전 통신 결과가 남아있지 않기 때문에 자원이 낭비되며 이를 해결 하기 위해 쿠키가 등장하였다. 비연결성이란? - 클라이언트가 요청을 한 후 응답을 받으며 그 연결을 끊어버리는 특징무상태성이란?- 통신이 끝나면 상태를 유지하지 않는 특징 쿠키란?쿠키는 사용자가 웹사이트를 방문할 경우 사용자 웹 브라우저를 통해 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일HTTP에서 클라이언트의 상태 정보를 PC 에 저장했다가 필요시 참조하거나 재사용할 수 있다.쿠키의 형태는 KEY 와 Value 형태로 저장된다.HTTP 헤더에 요청을 보낼 때마다 매번 쿠키를 담아서 보내어 사용..

CS/네트워크 2025.03.23

Spring ExceptionHandler을 사용한 예외처리

Spring ExceptionHandler을 사용한 예외처리 ExceptionHandler란?스프링 부트에서 예외를 처리하는데 사용하는 어노테이션으로 특정 컨트롤러에서 발생하는 예외를 개별적으로 처리 하도록 하거나전역적으로 관리하는데 활용됩니다. 내가 작성할거는 전역 예외 처리 방법이다.전역 예외 처리ControllerAdvice란?개별 컨트롤러에서 처리하는 대신 전역적으로 예를 관리하도록 해주는 어노테이션으로@ ControllerAdvice 와 @RestControllerAdvice 어노테이션이 존재한다.@ ControllerAdvice : 일반 @ Controller 에서 view를 반환하는 컨트롤러에 대한 예외를 처리한다@RestControllerAdvice : REST API 컨트롤러에 대한 예외..

[자바] Two Pointer 알고리즘

Two Pointer 알고리즘 (투 포인터 알고리즘)개념투 포인터 알고리즘은 배열이나 리스트에서 두 개의 포인터를 사용하여 효율적으로 목표(문제)를 해결하는 기법으로 정렬된 배열에서 특정 조건을 만족하는 부분을 찾을 때 사용하면 시간 복잡도를 줄이는 매우 좋다.로직두 개의 포인터를 사용하여 배열을 탐색보통 하나를 왼쪽(배열 인덱스0)에서 시작, 다른 하나는  오른쪽에서 시작하여  특정 조건을 만족하는 경우를 찾는다.문제 유형에따라 오른쪽 시작 지점이 0부터 시작할 수도 있고 배열 인덱스의 최대치에서부터 시작할 수 있다.대표 유형두 수 의 합배열이 정렬된 상태에서 투 포인터를 사용하여 두 수의 합이 특정 값이 되는지 찾는 문제로직왼쪽 인덱스 left를 0으로, 오른쪽 인덱스 right를 배열의 끝으로 설정..

알고리즘 2025.03.15
반응형