문제 링크: https://www.acmicpc.net/problem/1003피보나치 수열에서 원하는 수 n을 호출했을 때, 0과 1이 총 몇 번 호출되는지 묻는 문제 접근 1. 재귀문제에 나온 그대로 피보나치 함수를 구현했다.def fibo(n): if n == 0: return 0 elif n == 1: return 1 else: return fibo(n-1) + fibo(n-2)0이 카운트되는 횟수, 1이 카운트되는 횟수를 따로 변수에 저장해서 풀었지만결과는 시간초과! 접근 2. 메모이제이션피보나치 수열은 fibo(n) = fibo(n-1) + fibo(n-2).fibo(5)를 예시로 들어보자, fibo(5)= fibo(4) + fibo(3)= fibo(3) + f..
1. validation 의존성 추가build.gradle의 dependencies에 아래 코드를 추가해주자.implementation 'org.springframework.boot:spring-boot-starter-validation' 2. 유효성 검사 코드 예시@Getter@Setter@AllArgsConstructorpublic class Member { @NotBlank(message = "아이디는 필수 입력 값입니다.") private String userId; @NotBlank(message = "비밀번호는 필수 입력 값입니다.") private String pw; @Pattern(regexp = "^[ㄱ-ㅎ가-힣a-z0-9-_]{2,10}$", message =..
1. Jackson 라이브러리란REST API 방식으로 서버와 클라이언트가 통신할 때, JSON 형식을 주로 사용함.그런데 서버단에서는 Camel Case 방식을, 클라이언트단에서는 Snake Case 방식을 사용함.따라서 서버단과 클라이언트단의 표현 방식이 다르기 때문에, 데이터의 key가 달라지는 경우 존재.이러한 문제를 해결하기 위해 해당 라이브러리의 어노테이션 사용.-> @JsonProperty, @JsonNaming 2. @JsonProperty, @JsonNamingJava 객체의 필드와 JSON 객체 속성 간의 매핑 정의. → Java 필드명과 JSON 속성명이 다를 경우에도 서로 연결 가능. json으로 넘어오는 값이 아래와 같다고 가정하자.{ “name” : “상품명”, “p..
1. dependencies 블록은?받아올 라이브러리를 정의해두는 공간.dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test'}위와 같은 dependencies가 있다고 가정하자.implementation, compileOnly 등 생소한 키워드들이 많은데.. 얘네들은 뒤에 오는 라이브러리들이 적용될 범위(scope)를 정해준다. 2. Keyword 정리 implementation- 전 범위에 걸쳐 적용된다. testIm..
지난 첫 페어 프로그래밍에 이어, 두 번째로 페어 프로그래밍을 해봤다.>> 지난 글 보기: https://lvolz.tistory.com/70 주제는 선택 정렬 구현하기.구현한 코드는 다음과 같다.# 선택 정렬_오름차순arr = [2, 4, 7, 6, 9, 3, 1, 5, 8, 10]for i in range(len(arr)): min_idx = i for j in range(i+1, len(arr)): if arr[min_idx] > arr[j]: min_idx = j arr[i], arr[min_idx] = arr[min_idx], arr[i]print(arr) 이런 방식으로도 풀 수 있을 것이다. (for j로 돌리지 말고 그냥 min 함수 사용)fo..
Request: 클라이언트의 요청. (Client -> Server) Request 구조Request Line - Method 종류, 경로Request Headers(택)Request Message Body - 파라미터 형식 (서버에 전송할 데이터를 body에 담음) Request 주요 요소Request Methods가 중요하다고 생각한다. 서버가 수행해야 할 동작을 지정해서 요청을 보내기에 주요한 것 같다. Response: 요청에 대한 서버의 답변. (Server -> Client) Response 구조Status Line - 요청의 성공 여부를 나타내는 상태 코드 (ex. 200, 404, 302 ..)HeaderBody - 전송할 데이터를 담음 Response 주요 요소Status Code클라이언..
프로젝트 구상 자바 프로그래밍을 배운 후, 곧바로 이어서 미니 프로젝트를 진행했다. 2024년 4월 11일부터 17일까지, 평일 5일간 아이디어 구상부터 기획, 설계, 개발, 발표까지 마쳤다. Swing을 활용해서 간단하고 재밌는 게임을 구현하고자 했다. 정한 주제는 개복치 키우기 게임 제작하기! 학교에서 자바를 배운지도 오래되어 기억이 잘 안 났고, 자바로만 프로젝트를 진행해본 적이 없었기 때문에 잘 구현할 수 있을지 걱정되었다. 프로젝트 일정 1일차 (4.11목) : 프로젝트 주제 선정, 아키텍처 구조 설계 및 틀 구현 2일차 (4.12금) : Figma 각 화면 디자인, DAO 및 기능 명세서 작성, 역할 분담 3일차 (4.15월) : HomeScreen와 내부 요소 UI 작업, 백엔드 구현 (DA..
1. 애자일 vs 폭포수 방법론을 적용하기 위한 구체적인 실행은 어떻게? 애자일 방법론; 반복적, 점진적, 계속해서 고객의 피드백을 받으며 개발 진행. - 스크럼: 스프린트 기반으로 애자일 방법론 실행 - 칸반: 칸반 보드를 통해 워크플로우를 가시화, 프로세스 관리 - XP: 짧은 개발 주기를 반복하며, 사용자의 요구 변화에 신속하게 대응 - TDD: 테스트 주도 개발 방법론, 선 테스트 코드 작성 -> 후 구현 - BDD: 비즈니스 중심의 행위 주도 개발 방법론, 시나리오 기반으로 테스트, 특정 기능이 '무엇'을 제공하는지에 초점. 폭포수 방법론; 선형적, 계획적, 완료된(이전) 단계로 되돌아갈 수 없다. - 계획 -> 분석 -> 설계 -> 개발 -> 시험 -> 운영/유지보수 2. 설계가 중요하다 vs..