BootCamp

BootCamp

[Project] 미니 프로젝트 #3 | 홈 트레이닝 애플리케이션 구현 완료

안녕하세요 오늘은 홈 트레이닝 앱 구현이 완료가 되고, 추가 기능과 최종 수정까지 완료했습니다. 공모전 준비 때문에 업로드가 늦어졌습니다. 공모전 때 발표했던 최종 작품 보겠습니다. 1. 개발 목적 이 프로젝트를 하게 된 계기입니다. 세계 비만 재단에서는 2035년쯤 세계 인구 절반 이상이 과체중이나 비만이 될 수 있다는 전망을 보도했습니다. 코로나로 이후로 몸무게가 증가한 사람은 46%이며, 비만으로 인한 성인병도 심각한 수준입니다. 2. 문제 인식 기존 운동 앱을 살펴보니 문제점이 많았습니다. 자세를 인식해 주지 않고, 운동 횟수만 알려주거나 다양한 운동기구가 필요한 앱이 많았습니다. 이러한 불편한 점을 해결하기 위해 '자세 인식 홈 트레이닝 앱'을 제작해 보기로 했습니다. 3. 시장 현황 디지털 헬..

BootCamp

[Project] 미니 프로젝트 #2 | 홈 트레이닝 애플리케이션 디자인

안녕하세요 오늘은 프로젝트 진행에서 중요한 UI/UX를 피그마로 디자인 한 내용입니다. 대략적인 디자인은 끝냈고 디자인을 바탕으로 기능을 구현하는 단계에 있습니다. 디자인 살펴보겠습니다. 1. 메인 디자인 어플 명은 New Body로 정하고 사용자가 처음으로 로그인하면 나타나는 화면입니다. 다음으로 넘어가는 버튼을 누르면 넘어갑니다. 2. 로그인 & 회원가입 로그인과 회원가입을 하는 화면입니다. 자체 로그인뿐만 아니라 파이어 베이스를 이용해 구글 계정으로 연동해서 로그인 및 회원가입을 할 수 있습니다. 성별, 생년월일, 몸무게, 키에 대한 정보를 파이어 베이스 데이터 베이스에 저장합니다. 3. 대시보드 대시보드 화면입니다. 키와 몸무게로 BMI 지수를 계산하여 메인 화면에 보여줍니다. 최근 활동량에는 최..

BootCamp

[Project] 미니 프로젝트 #1 | 홈 트레이닝 애플리케이션 구현

안녕하세요 오늘은 첫 미니 프로젝트를 진행하게 되었습니다. 자바와 파이썬을 한 달간 배우고 바로 프로젝트를 진행합니다. 팀원은 저를 포함하여 총 5명이며, 홈 트레이닝 앱을 구현하기로 했습니다. 8월 22일에 발표이기 때문에 총 기간은 20일입니다. 세 가지는 반드시 사용해야 합니다. ① Java ② Gui ③ DB 세 가지 사항을 모두 고려한 결과, 안드로이드 스튜디오를 사용하여 안드로이드 앱을 구현하기로 결정했습니다. 1. 핵심 기능 핵심 기능은 총 크게 A, B, C 세 가지로 나누었습니다. A는 필수 기능, B는 선택 기능, C는 시간이 남으면 구현하면 좋은 기능으로 정했습니다. A - A는 로그인, 회원 정보, 자세 교정, 홈 트레이닝 비디오, 기록 측정, 음성인식 로그인과 회원 정보는 모든 앱..

BootCamp

[Java] BFS(너비 우선 탐색)이란? Queue를 활용한 예제

안녕하세요 오늘은 BFS에 대해 알아보겠습니다. BFS는 Breadth First Search의 약자이며, 너비 우선 탐색이라고 부릅니다. 루트 노드나 임의의 노드에서 시작하여 인접한 노드를 먼저 모두 확인한 후 다음 depth를 탐색합니다. Queue를 사용하여 데이터를 탐색합니다. 1. BFS (Breadth First Search)의 장점과 단점 너비 우선 탐색은 최대한 넓게 이동 후 더 이상 갈 수 없을 경우 아래로 이동합니다. 거리가 가까운 정점을 먼저 탐색하고, 가장 멀리 떨어져 있는 정점을 가장 나중에 방문합니다. BFS는 재귀적으로 동작하지 않습니다. ● 장점 모든 경로를 탐색하기에 여러 해가 있을 경우에도 최단 경로임을 보장합니다. 최단 경로가 존재하면 깊이가 무한정 깊어진다고 해도 답을..

BootCamp

[Java] DFS(깊이 우선 탐색)이란? Stack을 활용한 예제

안녕하세요 오늘은 DFS에 대해 알아보겠습니다. DFS는 Depth First Search의 약자이며, 깊이 우선 탐색이라고 부릅니다. 루트 노드나 임의의 노드에서 시작하여 최대로 진입할 수 있는 깊이까지 탐색한 후 돌아와 다른 노드로 탐색하는 방식입니다. Stack을 사용하여 데이터를 탐색합니다. 1. DFS (Depth First Search)의 장점과 단점 깊이 우선 탐색은 최대한 깊이 내려간 후 더 이상 깊이 갈 곳이 없으면 옆으로 이동합니다. 예를 들어, 미로 찾기에서는 최대한 한 방향으로 직진합니다. 더 이상 길이 없으면 Stack을 pop 하며 길을 찾아갑니다. ● 장점 현 경로상의 노드들만 기억하면 되므로 저장 공간 수요가 비교적 적습니다. 목표 노드가 깊은 단계에 있을 경우 해를 빨리 구..

BootCamp

[Java] 이진 탐색(Binary Search)를 활용한 재귀적 탐색

안녕하세요 오늘은 이진 탐색에 대해 알아보겠습니다. 이진 탐색이란 정렬된 데이터나 리스트에서 특정한 값을 빠르게 찾아내는 알고리즘입니다. 중간에 있는 임의의 값을 선택하여 찾고자 하는 값과 X와 비교합니다. X가 중간 값보다 작으면 중간 값을 기준으로 좌측의 데이터들을 대상으로, X가 중간 값보다 크면 우측을 대상으로 다시 탐색합니다. 다시 중간 값을 임의로 선택하고 비교합니다. 해당 값을 찾을 때까지 반복합니다. 1. 이진 탐색의 예시 int[] arr = {1, 5, 11, 16, 23, 38, 54, 66, 87, 100}; 순차적으로 정렬된 배열이 있습니다. 이 배열에서 이진 탐색을 이용하여 38의 값을 찾아보겠습니다. ①첫 번째 - 가운데 위치한 23을 선택합니다. - 선택한 값 23과 38을 ..

BootCamp

[Java] 후위 표기법 (PostfixNotation) 스택 활용하여 구현하기

안녕하세요 오늘은 후위 표기법(PostfixNotation)에 대해 알아보겠습니다. 우리가 일반적으로 사용하는 표기법은 연산자 사이에 피연산자가 오는 중위 표기법입니다. 후위 표기법은 연산자를 피연산자의 뒤에 놓는 방법입니다. 스택의 응용의 대표적인 예이며, 수식은 계산기에서나 컴퓨터 프로그래밍을 할 때 자주 나타납니다. 1. 코드 구현 과정 1.선언 및 분해 public class PostfixNotation { public static void main(String[] args) { PostfixNotation pfn = new PostfixNotation(); Stack ms = new Stack(); String a = "113 + 11 - ( 32 - ( 9 - 2 + 6 ) )"; String..

BootCamp

[Java] 원형 큐(Queue) 구현하기

안녕하세요 이번에는 선형 큐를 원처럼 이은 원형 큐(Queue)에 대해 알아보겠습니다. 원형 큐는 선형 큐의 문제점을 보완하기 위한 자료구조입니다. 선형 큐의 문제점은배열의 가장 앞에 있는 데이터를 꺼내오기 때문에 그 다음 인덱스의 데이터들을 한 칸씩 밀어야 하는 단점이 있습니다. 이 과정은 자료 하나를 꺼낼 때마다 반복문으로 수행되며, O(n)만큼의 시간 복잡도를 요구하므로 상당히 비효율적입니다. 1. 원형 Queue 분석 원형 Queue도 선형 Queue와 마찬가지로 1차원 배열을 사용하여 구현합니다. 하지만 선형 Queue와는 다르게 Shift를 해서 앞으로 밀지 않습니다. 배열을 선형으로 사용하여 삽입을 계속해야 하는 선형 Queue의 데이터를 넣을 때마다 번거로움이 있다는 단점을 해결합니다. 또..

BootCamp

[Java] 선형 큐(Queue) 구현하기

안녕하세요 오늘은 자료구조의 스택의 반대 개념인 큐(Queue)에 대해 알아보겠습니다. Queue는 스택과는 다르게 가장 먼저 들어간 데이터가 가장 먼저 나가는 구조를 말합니다. '선입선출'이라고 하며, First In First Out(FIFO)라고도 합니다. 예시로, 은행에 번호표가 있습니다. 은행에 가면 대기표를 발급받아 기다리는데, 번호표를 먼저 뽑은 순서대로 부르는 구조가 바로 Queue 구조입니다. Enqueue : 데이터에 큐를 넣는 동작 Dequeue : 큐에서 데이터를 꺼내는 동작 1. 선형 Queue 분석 선형 Queue는 1차원 배열을 사용하여 구현합니다. Shift를 해서 앞으로 땡겨지는데, 이러한 구조 자체가 비효율적이라는 단점이 있습니다. 이러한 문제를 해결하기 위해 나온 개념이..

BootCamp

[Java] 숫자 야구게임 만들기 (Baseball game)

오늘은 부트 캠프에서 배운 숫자로 야구게임을 구현해 보겠습니다. 문제는 다음과 같습니다. 숫자 야구게임 요약하자면, 숫자와 자리까지 같으면 스트라이크이고 숫자만 같고 자리가 다르면 볼입니다. (단, 중복된 숫자는 불가능하며 숫자의 범위는 정수 0부터 9까지입니다.) 사용자가 입력을 하고, 난수를 출력하는 메서드와 같은지 비교를 해서 구현하면 됩니다. 출력은 다음과 같습니다. input three number에 세 자리 숫자를 입력하면 컴퓨터가 판단해서 strike와 ball을 판단해서 출력합니다. 세 자리 숫자와 자리까지 같으면 success!!!라는 화면이 나오고 게임이 종료됩니다. 구현하기에 앞서, 메서드를 생각해 봤습니다. 1. 난수 생성 메서드 2. 사용자 입력 메서드 3. 메인 메서드 난수를 생..

기록하는 개발
'BootCamp' 카테고리의 글 목록