Backend(38)
-
자바의 라이브러리 의존성 관리 및 빌드 도구 (Maven, Gradle)
Maven, Gradle?: 라이브러리 설치부터 빌드/실행까지 자동으로 도와주는 관리자 1. 왜 필요한 걸까?자바로 프로젝트 만들다 보면 외부 라이브러리(예: Hibernate, MySQL 드라이버 등)를 써야 함그런데 그걸 직접 다운로드하고 연결하면 너무 귀찮고 비효율적또한, 자바 파일이 .class로 컴파일되고, .jar로 묶여야 배포 가능한데, 그걸 매번 수동으로 하면 실수도 많고 시간이 오래 걸림 그래서 “라이브러리 의존성 관리 + 빌드(컴파일하고 실행 파일로 만드는 것) 자동화” 를 해주는 도구가 필요해짐 2. Maven과 Gradle의 역할기능설명1. 의존성 관리필요한 라이브러리를 pom.xml(Maven) 또는 build.gradle(Gradle)에 선언만 하면 자동 다운로드됨2. 컴파일 및..
2025.06.11 -
로그 라이브러리: SLF4J, Logback
1. 로그 라이브러리를 통한 로그 사용운영 시스템에서는 System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고,별도의 로깅 라이브러리를 사용해서 로그를 출력한다.스프링 부트 로깅 라이브러리는 기본적으로 Logback을 제공한다.SLF4J: 여러 로그 라이브러리(Logback, Log4J, Log4J2 등)를 통합해서 인터페이스로 제공Logback: SLF4J를 구현한 구현체로그 사용시 장점 쓰레드 정보, 클래스 이름 같은 부가 정보를 함께 볼 수 있고, 출력 모양을 조정할 수 있다.로그 레벨에 따라 개발 서버에서는 모든 로그를 출력하고, 운영서버에서는 출력하지 않는 등 로그를 상황에 맞게 조절할 수 있다.시스템 아웃 콘솔에만 출력하는 것이 아니라, 파일이나 네트워크..
2025.05.02 -
API란 무엇인가?
1. 인터페이스 1) 일반적인 의미의 인터페이스인터페이스는 두 가지가 만나서 서로 소통하거나 연결될 수 있게 해주는 접점을 말한다. 서로 다른 두 개념(사람-기계, 기계-기계)이 이해할 수 있게 중간 역할을 해주는 것TV 리모컨이 TV와 우리 손 사이의 인터페이스. → 버튼을 눌러 TV를 조작하게 해줌자동차의 핸들, 페달, 기어도 운전자와 자동차를 연결해주는 인터페이스. → 운전자가 차를 제어할 수 있게 해주는 장치들2) 프로그래밍에서의 인터페이스프로그래밍에서 API는 프로그램이 다른 프로그램과 소통하는 규칙과 방법을 정해둔 것. API의 Interface Java의 Interface: 자바에서는 interface라는 키워드로 클래스가 따라야 할 규칙(계약)을 정의GUI 인터페이스: 버튼, 텍스트박스..
2025.05.02 -
어플리케이션 개발 구조와 흐름
1. 데이터 흐름: 3계층형 아키텍처1) 클라이언트 (프리젠테이션 계층)사용자가 직접 상호작용하는 인터페이스.사용자가 브라우저(또는 모바일 앱)를 통해 웹 서버에 요청을 보냄. (HTTP/HTTPS 통신 프로토콜 사용)브라우저는 요청을 보낼 때 필요한 데이터를 포함해 보냄(쿠키, 헤더 등).2) 웹 서버와 애플리케이션 서버 (애플리케이션 계층)클라이언트의 요청은 웹 서버로 전달된 뒤, 필요한 작업에 따라 애플리케이션 서버로 전달된다. 웹 서버(Web Server)역할: HTTP 요청을 처리하고 정적 리소스(HTML, CSS, JS 파일 등)를 클라이언트에 바로 제공.정적 리소스 요청이라면 웹 서버가 자체적으로 처리하고 응답.예: 사용자가 이미지를 요청할 경우, 웹 서버가 이미지 파일을 찾아 응답.애플리케..
2025.03.18 -
알고리즘 효율 분석 | 시간 복잡도, 빅오 표기법
1. 시간 복잡도 (Time Complexity)알고리즘의 성능을 나타내는 지표 입력 크기 n에 따라 연산 횟수가 어떻게 증가하는지를 나타낸다 즉, 입력 크기가 커질수록 성능이 어떻게 변하는지를 수학적으로 분석하는 것 시간 복잡도는 낮을 수록 좋다주로 빅오 표기법(Big-O Notation)을 사용해서 표현 2. 빅오 표기법 2-1. 빅오 표기법최악의 경우 시간 복잡도를 표현하는 방법 시간 복잡도의 점근적 상한 (상한선: 빅오, 하한선: 빅오메가) 어떤 프로그램의 연산 횟수가 f(x)라고 할 때, f(x)에서 가장 영향이 큰 항만 남기고 상수와 낮은 차수는 제거하는 방식으로 표현한다. 예: f(x)=2x² + 3x + 5 → O(x²)2-2. 빅오 시간 복잡도 구하기 (빅오 상한의 정의)다음을 만족하..
2025.03.12 -
Java로 구현하는 자료구조
0. 자료구조란?0-1. 자료구조의 정의자료구조란 데이터를 효율적으로 저장하고 관리하기 위한 방법과 규칙을 의미한다.일련의 자료들을 조직하고 구조화하는 것프로그램에서 사용하기 위한 자료를 기억장치의 공간 내에 저장하는 방법저장된 그룹 내에 존재하는 자료 간의 관계, 처리 방법등을 연구 분석하는 것효율적인 프로그램을 작성할 때 가장 우선적인 고려사항은 저장 공간의 효율성과 실행시간의 신속성이다.0-2. 자료구조의 분류 원시형/비원시형원시형: 기본형, 내장형 자료구조비원시형: 원시형을 묶어서 만든 자료구조선형/비선형 구조 선형구조비선형구조데이터 저장 구조순차적계층적, 비순차적데이터간 관계명확, 데이터가 메모리 상에 연속적으로 저장되거나 포인터로 연결복잡, 특정키를 통해 데이터를 검색하거나 계층 구조를 표현할..
2025.03.06