분류 전체보기 338

[CS] - Spring vs Spring Boot

프레임워크 vs 라이브러리프레임워크프레임워크(Framework) 는 애플리케이션을 만들기 위한 뼈대(구조)와 규칙을 미리 제공하는 도구이다.개발자는 모든 것을 처음부터 만드는 대신, 프레임워크가 제공하는 구조 안에서 비즈니스 로직에 집중할 수 있다.라이브러리라이브러리는 특정 기능을 제공하는 코드 묶음으로, 필요할 때 가져다 사용한다.차이점프레임워크프레임워크가 전체 흐름을 제어개발자는 정해진 위치에 코드만 작성예시 : React, Django, Spring Boot라이브러리내가 필요할 때 호출해서 사용제어 흐름은 개발자에게 있음프레임워크 사용 이유빠른 개발기본적인 기능이 이미 구현되어 있어 개발 속도가 빨라짐일관성 유지팀 프로젝트에서 코드 스타일 통일유지보수 용이구조가 체계적이라 기능 추가나 수정이 쉬움보..

CS 2026.01.19

[런닝 코스 공유 서비스] - 22. 코스 단건 조회 API 개발

🏅오늘의 목표코스 단건 조회✅ 진행한 작업코스 단건 조회 - 전체 공개/비공개📃 개발내용코스 단건 조회CourseRepositoryOptional findByUuidAndCourseVisibility(UUID courseUuid, CourseVisibility courseVisibility);코스 아이디와 공개범위 확인CourseService코스 단건 조회는 전체공개/비공개/크루원만 공개 로 나누어진다.현재는 전체공개/비공개만 구현했고, 추후 크루 도메인 구현시 추가할 예정이다. // 코스 단건 조회 - 전체 공개 @Transactional(readOnly = true) public CourseDto getPublicCourse(UUID courseUuid) { log.deb..

카테고리 없음 2026.01.19

[프로그래머스] 12985 : 예상 대진표 (Python/파이썬)

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/12985문제△△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습니다. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다음 라운드에서 1번을 부여받고, 3번↔4번에서 겨루는 게임에서 3번이 승리했다면 다음 라운드에서 2번을 부여받게 됩니다. 게임은 최종 ..

카테고리 없음 2026.01.19

[백준] 11047 : 동전 0 (Python/파이썬)

문제 링크https://www.acmicpc.net/problem/11047문제준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.입력첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000)둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)출력첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다.예제입력10 4200151050100500100050001000050000출력6정답 및 풀이import ..

백준 2026.01.19

[백준] 11659 : 구간 합 구하기 4 (Python/파이썬)

문제 링크https://www.acmicpc.net/problem/11659문제수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오.- 제한1 ≤ N ≤ 100,0001 ≤ M ≤ 100,0001 ≤ i ≤ j ≤ N입력첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다.출력총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다.예제입력5 35 4 3 2 11 32 45 5출력1291정답 및 풀이import sysinput = sys.stdin.readlinen, m = map(int, i..

백준 2026.01.19

[런닝 코스 공유 서비스] - 21. 코스 도메인 및 등록 API 개발

🏅오늘의 목표코스 도메인 개발코스 등록 API 개발✅ 진행한 작업코스 엔티티 생성코스 리포지토리 생성코스 서비스 생성코스 등록 API 생성📃 개발내용코스(Course) 엔티티 생성@Entity@Table(name="courses")@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Course extends BaseEntity { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id",nullable = false) private User user; @Column(name = "course_name",nullable = false, length = ..

[런닝 코스 공유 서비스] - 20. User 도메인 PR 후 리팩토링

🏅오늘의 목표코드래빗의 PR 을 참고해 수정✅ 진행한 작업CustomUserDetails 수정📃 개발내용CustomUserDetails - getAuthorities()기존Collection authorities = new ArrayList();authorities.add(new GrantedAuthority() { @Override public @Nullable String getAuthority() { return user.getRole().toString(); }});return authorities;문제점불필요한 익명 클래스GrantedAuthority 를 구현하는 익명 클래스를 매번 생성가독성 저하단순한 기능을 복잡하게 표현메모리 비효율매번 새로운 ArrayLis..

[런닝 코스 공유 서비스] - 19. 회원 탈퇴

🏅오늘의 목표회원 탈퇴(논리삭제) 구현✅ 진행한 작업회원 탈퇴(논리삭제) 구현📃 개발내용회원 탈퇴회원 탈퇴 기능은 논리삭제 방식으로 구현하여 데이터 무결성과 확장성을 확보JWT 인증 정보를 기반으로 본인만 탈퇴 가능하도록 API 구조 설계UserService - 탈퇴 메서드 추가// 탈퇴 : 논리삭제 @Transactional public void withdraw(UUID userUuid) { User user = userRepository.findByUuid(userUuid) .orElseThrow(() -> new BaseException(UserErrorCode.USER_NOT_FOUND)); user.withdraw(); }DB 에서 실제 삭제하지 않고 논리삭제UserController..

[백준] 15652 : N 과 M (4) (Python/파이썬)

문제 링크https://www.acmicpc.net/problem/15652문제자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.1부터 N까지 자연수 중에서 M개를 고른 수열같은 수를 여러 번 골라도 된다.고른 수열은 비내림차순이어야 한다.길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다.입력첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)출력한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다.예제입력3 3출력1 1 11 1 21 1 31..

백준 2026.01.15

[백준] 9461 : 파도반 수열 (Python/파이썬)

문제 링크https://www.acmicpc.net/problem/9461문제오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다.파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다.N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100)출력각 테스트 케이스마다 ..

백준 2026.01.15