전체 글

·코딩테스트
재귀(Recursion)- 재귀: 자신을 정의할 때, 자기 자신을 참조하는 것- 재귀 함수: 함수 내부에서 자기 자신을 호출하는 함수 재귀 함수를 사용하는 이유변수의 사용을 줄여, 프로그램을 더 간결하고 이해하기 쉽게 만들 수 있음재귀 함수는 복잡한 문제를 간단한 기본 단계 (base case)로 나누고, 이러한 기본 단계에서 해결하는 방식을 통해 문제를 해결할 수 있게 함재귀 함수를 작성할 때 주의할 점무한 루프에 빠지지 않도록 종료 조건을 잘 설정 (종료 조건을 기저 사례 (base case) 라고도 함)함수의 파라미터 및 인자 설정에 유의* 재귀는 이후 DFS / BFS 등에 자주 사용되는 개념이기 때문에 꼭 이해하고 넘어가야함 정렬정렬이 필요한 이유?오름차순 및 내림차순으로 정렬되어 있다면 특정 ..
·Web
FileUploadMultipartService.java/** * MultipartFile을 이용한 파일 업로드 구현 */@Service@Slf4jpublic class FileUploadMultipartService { @Autowired @Qualifier("fileUploadExecutor") private ExecutorService executorService; @Value("${file.upload-dir}") private String uploadDir; /** * (방법2) 비동기 파일 업로드 */ @Async public void uploadFileAsync(MultipartFile file) throws IOException { ..
·Web
fileupload.ymlspring: servlet: multipart: enabled: true max-file-size: 10MB max-request-size: 10MBfile: upload-dir: "경로" application.yml10번 라인 추가spring: application: name: project-api profiles: active: local config: import: - config/database.yml - config/security.yml - config/fileupload.yml cache: type: simple FileUploadMultipartServcie.java/** ..
·Web
Spingboot는 다양한 설정을 통해 애플리케이션의 동작을 제어할 수 있습니다.주요 설정 클래스@SpringBootApplication@SpringBootApplication은 Spring Boot 애플리케이션의 진입점으로, 여러 애너테이션을 조합한 것입니다.주요 기능- @SpringBootConfiguration: Spring 설정 클래스를 나타냅니다.- @EnableAutoConfiguration: Spring Boot의 자동 구성 기능을 활성화합니다.- @ComponentScan: @Component 애너테이션이 붙은 클래스를 스캔하여 Spring 컨텍스트에 등록합니다.WebMvcConfigurerWebMvcConfigurer는 Spring MVC 설정을 사용자 정의하기 위해 사용됩니다.주요 기능..
·Web
Spring Boot는 서버와 클라이언트 간의 효율적인 데이터 전송을 위해 여러 가지 응답 처리 방식을 제공합니다. 이러한 다양한 응답 처리 방식은 애플리케이션의 요구사항에 따라 유연하게 선택할 수 있으며, 성능 최적화와 사용자 경험 향상에 기여합니다. 이번 글에서는 각 응답 처리 방식의 특징과 사용 사례를 자세히 살펴보겠습니다. 1. @ResponseBody / @RestController간단한 문자열, 객체, JSON 등을 반환할 때 주로 사용상태 코드와 헤더 설정은 자동으로 처리되며, 기본적으로 200 OK 상태 코드가 사용됨json 응답형식{ "key": "Hello", "value": "World"}2. ResponseEntity간단하고 유연한 응답 처리주로 API 응답에 상태 코드와 헤더를..
·Etc
자바 LTS 버전자바는 3년 정도의 텀으로 LTS 릴리스가 제공됩니다.보통 8년 이상의 장기 지원을 제공하는데 현재 LTS 지원 버전은 Java8, Java11, Java17, Java21입니다.Java8은 여전히 많은 기업에서 사용 중이며, 레거시 시스템에서 널리 사용되고 있습니다.spring3.x, springboot6.x 이상부터는 최소 Java17 버전을 요구하고 있습니다. 왜 LTS 버전을 사용해야 할까?장기적인 지원Long-Term Support의 이름과 같이 장기적으로 보안 업데이트와 버그 수정을 지원해줍니다.안정성광범위하게 테스트되고 안정화된 후 릴리스되므로 높은 신뢰성을 갖고 있습니다.기업 환경에 적합많은 기업에서는 규제 요구 사항을 충족하기 위해 장기적으로 지원되는 소프트웨어를 사용해..
·Web
OAuth2Spring Security의 OAuth2 모듈은 OAuth 2.0 프로토콜을 사용하여 사용자 인증 및 권한 부여를 처리하는 기능을 제공합니다. 이를 통해 애플리케이션은 Facebook, Google, GitHub 등과 같은 외부 OAuth 2.0 제공자를 사용하여 사용자를 인증할 수 있습니다.Spring Security OAuth2 기능OAuth2 로그인: 외부 OAuth 2.0 제공자를 통해 사용자를 인증합니다.Resource Server: 액세스 토큰을 검증하고 보호된 리소스에 대한 접근을 제어합니다.Authorization Server: 인증과 권한 부여를 처리하고 액세스 토큰을 발급합니다. 클라이언트 정보얻기구글: https://console.cloud.google.com/home/d..
·Etc
코드기반- Mermaid장점: 적은 공수로 비교적 예쁜 다이어그램을 만들 수 있다.https://mermaid.js.org/ Mermaid | Diagramming and charting toolMermaid Diagramming and charting tool JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically.mermaid.js.org - SequenceDiagram장점: 깔끔하다https://sequencediagram.org/ SequenceDiagram.org - UML Sequence Diagram On..
·DB
퍼시스턴스 프레임워크란 무엇인가요?퍼시스턴스 프레임워크는 데이터베이스에 데이터를 저장하고 필요할 때 다시 불러오는 작업을 지원합니다.주요 목적은 애플리케이션과 데이터베이스 간의 데이터 전송을 효율적이고 일관성 있게 관리하는 것입니다.어떤 역할을 하나요?1. 데이터 매핑애플리케이션의 데이터 구조를 DB의 테이블과 매핑하여 데이터와 데이터베이스 간의 전송을 자동화하여 쉽게 DB를 조작할 수 있게 합니다. 자바와 같은 객체 지향 언어에서는 '객체'를 테이블과 매핑합니다. 2. 데이터베이스 연동DB 연결, SQL 쿼리 실행, 결과 매핑 등의 작업을 관리합니다.  3. 트랜잭션, 캐시 관리데이터 일관성과 무결성을 유지하기 위해 트랜잭션을 시작하고, 커밋하거나 롤백하는 과정을 자동으로 처리합니다.자주 사용하는 데이..
·Web
💻 Apple M1 Pro (macos14.5 on arm64)🛠️ IDE: IntelliJ🏁 Language: JAVA17🔗 Framework: Springboot 3.3.0⚙️ Project: Gradle🗄️ Database: MySQL 8.3.0 Homebrew🔐 Spring Security 6.3.0 JWT (JSON Web Token) 는 무엇인가요? JWT(JSON Web Token)는 JSON 객체를 사용하여 두 개체 간 정보를 안전하게 전송하기 위한 컴팩트하고 자가 포함된 방식입니다. JWT는 보통 인증과 권한 부여에 사용됩니다. 프로젝트 설정의존성 추가build.gradle// jwtimplementation 'io.jsonwebtoken:jjwt-api:0.11.5' // J..
태이오이오
뭐라도하는 개발일지