분류 전체보기 70

[예약구매] API 문서 작성

내용: 각 API의 요청 방식(GET, POST, PUT, DELETE 등), 엔드포인트, 요청 파라미터, 응답 예시 등을 포함합니다.목적: API를 통해 어떤 작업을 할 수 있는지, 어떤 데이터를 주고받을 수 있는지 명확히 설명합니다.기능MethodURLRequestResponse회원가입POST/api/signupemail : Stringpassword : Stringusername : Stringphone : address : 이메일 인증(고민)  email : Stringpassowrd : String인증번호로그인POST/api/login  비밀번호 변경PUT/api/update-passwordpassword : Stringnewpassword : String 프로필 변경PUT/api/update-..

[예약구매] Docker Compose 로컬 개발 환경 구축

Docker Compose: 개인 프로젝트에서부터 팀 협업까지개인 프로젝트를 진행할 때는 Docker까지 사용할 필요가 없다고 생각합니다. 로컬 같은 환경에서만 실행할 것이기 때문에 복잡한 환경 설정을 할 필요가 없기 때문이다. 그러나 팀 프로젝트 같은 여러 사람이 다루는 협업을 할 경우 각자의 환경이 다르기 때문에 코드가 동일하게 실행되도록 보장하는 것이 중요하다. 이때 Docker를 사용하면 다양한 환경에서 동일한 설정을 유지할 수 있어 매우 편리합니다. Docker Compose의 필요성개인 프로젝트라 할지라도 Docker를 이용해 환경을 구축하면 많은 장점이 있다. 하지만 여러 컨테이너를 실행할 때마다 실매번 명령어를 적어주는 것은 상당히 번거로운 작업이 될 수 있습니다. 실행 순서를 틀리거나 명..

[백준] 1193번 : 분수찾기 - Java

문제https://www.acmicpc.net/problem/1193지그재그 순회 방식으로 n번째 분수를 찾는 문제입니다. 분수는 대각선 방향으로 순회하며, 홀수 번째 대각선에서는 오른쪽 위 방향(↗)으로, 짝수 번째 대각선에서는 왼쪽 아래 방향(↙)으로 진행됩니다.접근 방법대각선 번호와 누적 칸 수 계산: n이 속하는 대각선 번호와 해당 대각선까지의 칸의 누적 합을 구합니다.짝수/홀수 대각선 구분: 짝수 대각선인 경우와 홀수 대각선인 경우에 따라 분자와 분모를 계산합니다.구현대각선 번호와 누적 칸 수 계산:crossCount는 현재 대각선 번호를 나타냅니다.square는 해당 대각선까지의 칸의 누적 합을 나타냅니다.n이 square보다 작아질 때까지 대각선 번호를 증가시키고 누적 칸 수를 업데이트합니다..

[백준] 2477번 : 참외밭 - Java

문제https://www.acmicpc.net/problem/2477참외밭의 변 길이와 방향이 주어졌을 때, 참외밭의 면적을 구하고 참외의 개수를 출력하는 문제접근 방법주어진 참외밭의 변 길이와 방향을 통해 큰 사각형의 최대 너비와 높이를 구합니다.큰 사각형에서 제외할 작은 사각형의 너비와 높이를 구합니다.큰 사각형의 면적에서 작은 사각형의 면적을 빼서 참외밭의 실제 면적을 구합니다.이 면적에 참외의 개수 K를 곱하여 총 참외의 수를 도출합니다.구현입력받기: 참외의 개수 K와 참외밭의 변 길이와 방향을 입력받습니다.큰 사각형의 변 길이 구하기: 방향이 1 또는 2인 경우(동쪽, 서쪽) 가장 긴 변을 maxWidth로 설정하고, 방향이 3 또는 4인 경우(남쪽, 북쪽) 가장 긴 변을 maxHeight로 설..

[예약구매] 데이터베이스 선택 과정

데이터 베이스 선택은 프로젝트의 요구사항과 환경에 따라 달라질 수 있습니다. 배경예약 구매 프로젝트는 사용자가 특정 상품을 특정 시간에 예약하여 구매할 수 있도록 지원하는 시스템입니다. 이 시스템은 사용자 관리, 상품 관리, 주문 관리 등 여러 핵심 기능을 포함하며, 대규모 트래픽을 처리하고 데이터의 일관성 및 무결성을 유지하면서 높은 확장성과 성능을 제공해야 합니다. 데이터베이스(DB) 선택은 이러한 요구를 충족시키는 데 중요한 요소입니다. 데이터베이스 선택 고려사항데이터 무결성과 일관성: 데이터베이스는 정확한 데이터 무결성과 일관성을 보장해야 하며, 트랜잭션 롤백 및 복구 기능이 필요합니다.확장성과 성능: 대규모 데이터베이스와 복잡한 쿼리를 처리할 수 있는 확장성과 높은 성능이 요구됩니다.애플리케이션..

[예약구매] 자바 버전 선택

https://www.jetbrains.com/lp/devecosystem-2023/java/ 기준  표를 보면 8, 17, 11 버전 순으로 사용을 많이 하고 있고, 8과 17을 사용하는 점유율이 비슷하다. 자바 17 버전을 선택한 이유1. 장기 지원 (LTS) 버전의 안정성 자바 17은 Long-Term Support (LTS) 버전으로, Oracle 및 OpenJDK 커뮤니티에서 장기간의 지원과 보안 업데이트를 보장합니다. 자바 8과 11에 이어 LTS 버전으로서 안정성과 검증된 성능을 제공하며, 기업 환경에서의 신뢰성을 확보하는 데 유리합니다. JetBrains DevEcoSystem 2023의 자료에 따르면, 자바 17은 점진적으로 사용 빈도가 상승하고 있으며, 안정성과 성능 측면에서 높은 평가..

[항해99 취업 리부트 코스 학습일지] 4주차 알고리즘 학습 Day 6

(오늘은 강의 학습과 팀스터디는 진행하지 않았습니다.) 4주차 알고리즘 마지막 날로 코딩 테스트를 치렀는데, 4문제중 2문제를 풀었다. (난이도 실버1, 골드5) 난이도가 실버1이 제일 낮아서 시작하기에 앞서 어려울꺼라고 생각했는데 예상보다 수월하게 풀었던 문제였다. 3, 4번은 예외...그 동안 열심히 강의를 듣고 문제 푼 보람이 있었던 것 같다. 아직 멀었다고 생각 되지만, 작은 성취감이라도 느낄 수 있지 않았나 싶다. 내일부터는 프로젝트 주차가 시작된다. 오늘 프로젝트 주제를 선택했는데, 계속 고민하다가 처음 끌렸던 주제인 예약 구매를 선택했다. 고민 했던 이유는 난이도가 어려울 꺼 같아 제대로 구현을 못하고 끝나지 않을 까 하는 생각이 들었기 때문이다. 그래도 흥미가 있는 프로젝트 주제를 선택한 ..

[항해99 취업 리부트 코스 학습일지] 4주차 알고리즘 학습 Day 5

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?4주차까지 배웠던 알고리즘 자료구조, 이분탐색, DFS/BFS, 완전탐색 그리디 다익스트라, DP 등등 다양한 알고리즘을 학습하였다. 오늘은 배운 내용을 다시 정리하고 완전탐색, 그리디, DP, 이분탐색 등등 복습하며 문제를 풀었다.앞으로 문제 유형을 보지 않고 내가 추측해서 푸는 연습을 꾸준히 해야겠다. Q. 이번 주 진행된 팀 스터디에서 얻은 인사이트는 무엇인가요?앞으로의 준비 방향으로 모의고사처럼 유형을 모르는 상태에서 문제를 푸는 연습, 유형 숙달, 난이도 천천히 높이기그리고 추가로 공부해보면 좋은 주제로는 투포인터, Union Find 한번씩 보면 좋을 것 같다. - 알고리즘 1일 1문제씩 풀기- 모르겠는 알고리즘 유형은 반복해서 풀면 템플릿 ..

[백준] 9655번 : 돌 게임 - Java

문제https://www.acmicpc.net/problem/9655 두 명의 플레이어가 번갈아 가며 돌을 가져가는 게임입니다. 각 플레이어는 한 번에 1개 또는 3개의 돌을 가져갈 수 있습니다. 마지막 돌을 가져가는 사람이 승리하게 됩니다. 게임은 항상 상근이가 먼저 시작합니다. 주어진 돌의 개수 N이 입력으로 주어질 때, 상근이가 이기는지 창영이가 이기는지 출력하는 문제접근 방법DP 배열을 사용하여 각 돌의 개수에서 이길 수 있는지 여부를 저장합니다.상근이가 돌을 1개 또는 3개 가져갈 수 있기 때문에, 돌의 개수가 N-1 또는 N-3일 때 상대방이 지는 경우, 현재 돌의 개수 N에서는 상근이가 이기게 됩니다.돌의 개수가 1개 또는 3개일 때, 상근이가 이길 수 있습니다. (첫 번째로 가져가기 때문)..

[항해99 취업 리부트 코스 학습일지] 4주차 알고리즘 학습 Day 4

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?다이나믹 프로그래밍 (Dynamic Programming)동적 계획법이란?동적 계획법(dynamic programming, DP)은 복잡한 문제를 더 간단한 여러 하위 문제로 나누어 해결하는 알고리즘 기법입니다. DP는 특정 구조가 내부적으로 반복되는 문제에서, 일부 문제의 풀이 결과를 재활용(메모이제이션)함으로써 계산의 효율성을 크게 높입니다. 이 기법은 부분 문제 반복과 최적 부분 구조를 가지며, 일반적인 방법에 비해 시간 복잡도를 크게 줄일 수 있습니다.다이나믹 프로그래밍의 특징하위 문제의 재사용:문제를 더 작은 하위 문제로 나누고, 각 하위 문제의 답을 저장하여 동일한 하위 문제를 반복해서 계산하지 않습니다.메모이제이션(Memoization):계..