SK43 [Spring] 일반적인 스프링 프로젝트 세트 하나의 서비스를 제공하기 위해 여러 스프링 관련 프로젝트를 엮어 사용한다!보통 5가지의 프로젝트를 사용한다 1. 웹 애플리케이션 서버 개발: Spring Boot내장 웹 서버(예: Tomcat, Jetty)를 제공하여 별도의 WAS(Web Application Server) 설정 없이 애플리케이션을 실행할 수 있다!"Spring MVC 기반의 웹 애플리케이션"을 쉽게 개발 가능+ application.properties or application.yml을 활용한 직관적인 설정+ 자동 설정(Auto Configuration) 기능으로 개발 편의성 증가 보통 선택하는 의존성(dependencies)들로는 다음과 같다- Spring Web- Spring Data JPA- Spring Configuration.. 2025. 3. 19. [ps java] BOJ 12865 평범한 배낭 해설 웰-노운 배낭(냅색) 문제이다 [골드5]https://www.acmicpc.net/problem/12865 [부분적 배낭 문제(the fractional knapsack problem)] - 각 항목의 일부만을 취할 수 있는 문제흔히 ps에서 "냅색"이라 말한다 구성: n항목의 집합 S- bi: 양수의 이득- vi: 양수의 부피목표: 최대 부피 한도 V내에서, 최대의 총이득을 주는 항목들을 선택32 + 15 = 47 0-1 배낭 문제(all-or-nothing knapsack problem) - 각 항목의 일부만을 취할 수 없는 문제0-1 배낭 문제는 탐욕적 선택 속성을 만족하지 않는다 >> DP로 해결 최적해는 이득 = 36 을 가져다주는 {A, E}지만, 탐욕해는 이득 = 24 를 가져다주는 {B.. 2025. 3. 18. [ps java] BOJ 9251 LCS 해설 LCS 웰-노운 DP 문제이다 [골드5]자주 쓰이는 곳이 많으니, 완벽히 숙지하자!https://www.acmicpc.net/problem/9251 LCS(Longest Common SubSequance): 최장 공통 부분 수열 문제LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.입력첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다.출력첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다.예제 입력 1ACAYKPCAPCAK예제 출력.. 2025. 3. 18. [ps java] BOJ 9465 스티커 해설 조금 생각해봐야 하는 DP 문제이다 [실버1]2개의 dp를 돌려야만 풀 수 있는 좋은 문제! https://www.acmicpc.net/problem/9465 문제상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다.상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다. 모든 스티커를 붙일 수 없게된 상냥이는 각 스티커에 점수를 매기고, 점수의 합이 최대가 되게 스티커를 떼어내려고 한다. 먼저, 그림 (b)와 같이 각 스.. 2025. 3. 17. [SW 설계 원칙] SOLID 원칙과 그 진정한 의미 ㅁSOLID 원칙: 객체지향 설계의 핵심 원칙 소프트웨어 개발에서 유지보수성과 확장성을 높이기 위해서는 올바른 설계 원칙을 따르는 것이 중요하다. SOLID 원칙은 이러한 객체지향 설계를 효과적으로 수행할 수 있도록 돕는 다섯 가지 핵심 원칙을 의미한다. 이 원칙들은 로버트 C. 마틴(Robert C. Martin)에 의해 정립되었으며, 특히 객체지향 프로그래밍(OOP)에서 널리 사용된다. 1. SRP(Single Responsibility Principle, 단일 책임 원칙)"클래스는 단 하나의 책임만 가져야 한다."단일 책임 원칙은 하나의 클래스가 하나의 역할만 수행하도록 설계해야 한다는 원칙이다. 즉, 하나의 클래스는 변경이 필요한 이유가 단 하나뿐이어야 한다. 이를 통해 코드의 응집도를 높이고, .. 2025. 3. 17. [Java API] 함수형 프로그래밍 익숙해지기(java.util.function 패키지) https://claremont.tistory.com/entry/Java-Stream-API%EC%99%80-%ED%95%A8%EC%88%98%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D [Java] Stream API와 함수형 프로그래밍Java 8부터 도입된 Stream API는 프로그래밍 스타일을 완전히 바꿔놓았다고 해도 과언이 아니다. 처음에는 그냥 반복문을 대체하는 기능 정도로만 생각했는데, 쓰면 쓸수록 '이거 꽤 강력한데?'라는claremont.tistory.com먼저 함수형 프로그래밍이 뭔지! 개념에 대해 알고 오자 :> Java에서는 람다 표현식(Lambda Expressions)을 활용하여 간결한 코드 작성을 지원하기 위해 표준 함수.. 2025. 3. 17. [Java] Stream API와 함수형 프로그래밍 Java 8부터 도입된 Stream API는 프로그래밍 스타일을 완전히 바꿔놓았다고 해도 과언이 아니다. 처음에는 그냥 반복문을 대체하는 기능 정도로만 생각했는데, 쓰면 쓸수록 '이거 꽤 강력한데?'라는 느낌이 든다. 특히, 함수형 프로그래밍 스타일과 맞물려서 사용하면 코드가 훨씬 깔끔해지고 유지보수가 편리해진다. ㅁStream API: 컬렉션(List, Set 등)의 요소들을 선언형(declarative) 방식으로 처리할 수 있게 도와주는 기능기존의 for-each 문을 사용한 코드보다 훨씬 간결하게 데이터를 필터링하거나 변환할 수 있다 (기존의 반복문 방식)public static void withoutStream() { String[] arrayOfStrings = {"A", "B", "C".. 2025. 3. 14. [Java] 버전 수정 기여(김영한의 실전 자바 - 중급 1편) Java Spring 생태계의 거장이신 김영한님 강의를 매우 좋아한다김영한님의 많은 강의들을 결제했으며, 그중 Java 강의는 현재 중급 2편까지 완강한 상태이다! 오랜만에 다시 들어가서 강의를 보는데 재밌는 걸 발견했다 이전에 교재에 오타가 있어 제보를 했더니, 정말 감사하게 수정 이력에 내 이름을 넣어주셨다(클레어몬트) 물론 큰 기여는 아닐지라도, 내가 정말 좋아하는 강의에 보탬이 됐다는 게 행복하고 뿌듯하다 😊#SK, #SKALA, #SKALA1기 2025. 3. 14. [SW 설계 원칙] 의존성 주입(DI, Dependency Injection) 쉽게 이해하기(w/Python) https://claremont.tistory.com/entry/SW-%EC%84%A4%EA%B3%84-%EC%9B%90%EC%B9%99-SOLID-%EC%9B%90%EC%B9%99%EA%B3%BC-%EA%B7%B8-%EC%A7%84%EC%A0%95%ED%95%9C-%EC%9D%98%EB%AF%B8 [SW 설계 원칙] SOLID 원칙과 그 진정한 의미ㅁSOLID 원칙: 객체지향 설계의 핵심 원칙 소프트웨어 개발에서 유지보수성과 확장성을 높이기 위해서는 올바른 설계 원칙을 따르는 것이 중요하다. SOLID 원칙은 이러한 객체지향 설계를 효과적claremont.tistory.com 괜히 쫄 거 없다!정말 간단한 개념이다예제를 통해 의존성 주입이 무엇인지 알아볼 거고, 언어는 제일 가독성이 좋은 파이썬을 .. 2025. 3. 13. 이전 1 2 3 4 5 다음