전체 글

개발 공부 기록. https://github.com/junseoparkk
📚 Project

[Project] 학교 시설 예약 관리 앱 (3) - ERD 작성 및 API 설계

1️⃣ ERD 1) ERD란? ERD(Entity Relationship Diagram) 이란 개체-관계 모델로, 관계형 데이터베이스에서 주로 사용되는 다이어그램이다. 이는 테이블간의 관계를 다이어그램으로 표현하여 개체간 관계, 즉 DB의 구조를 한 눈에 파악할 수 있다는 장점이 있다. 구성 요소로는 크게 세 가지가 있다. 'Entity(개체)', 'Relationship(관계)', 'Diagram(다이어그램)' 으로, 말 그대로 ERD 를 표현하는 구성 요소들이다. 최근에 정보처리기사 필기를 공부하면서 그동안 잘 알지 못했던 관련 개념들을 공부할 수 있었다. 하지만 프로젝트 진행 당시 ERD에 대한 지식이 전혀 없었기 때문에 많은 시행착오를 겪었다. 지난 게시글에 올린 '요구사항 분석 및 설계' 단계에..

📚 Project

[Project] 학교 시설 예약 관리 앱 (2) - 요구 사항 분석 및 구조 설계

프로젝트도 끝난지 2주가 다 돼간다. 기말고사 기간이지만 그동안 어떻게 프로젝트를 진행했는지 포스팅해보려 한다. 참고로 나는 프로젝트 초반에 어떻게 시작해야할지 너무 막막했다. 이에 비슷한 프로젝트를 진행중인 사람들에게 조금이나마 도움이 되면 좋겠다는 마음이다. 물론 어느정도 완성은 했지만 아직 뜯어 고쳐야할 것들이 많다. 실제 서비스까지 하면 좋겠지만, 아직은 실력의 한계때문에 불가하니 참고 정도로 봐주면 좋겠다. 앞으로 해당 프로젝트 관련 글이 많이 올라갈 예정이다. 쓰고싶은 내용이 많다. 1️⃣ 요구 사항 분석 1) 요구 사항 목록 요즘 알고리즘 문제를 많이 풀면서도 느낀 것이지만, 요구 사항을 잘 분석하는 것이 중요하다는 것을 깨닫고 있다. 프로젝트 당시 여러 번의 회의를 거치며 어떤 기능이 필요..

📜 Daily & 회고

[회고] 백준 골드 II 달성했다 후후

사실 골드2 달성한지는 좀 됐다. 그냥 시험 공부하다가 머리 식힐 겸 올려본다. 요즘 알고리즘 문제 푸는게 너무 재밌다. 시간 가는 줄 모르겠음 진짜로. 특히 그래프 알고리즘을 열심히 공부하고 있는데, 아무래도 DP나 수학쪽보다는 훨씬 재미있다. 물론 알고리즘 괴물들이 보기엔 귀엽게 느껴질 수 있겠지만 1, 2학년때와 비교하면 스스로 성장했다고 생각한다. 얼마 전 우테캠 코테도 경험삼아 쳐보면서 내 실력을 확인하고 싶었다. (물론 광탈했음) 예전이었으면 손도 못댈 문제도 어느정도 구현하고 테스트케이스까지 통과해보니 자신감도 생겼다. 좀 아쉬운 것은 요즘 공부하는 부분이 문제로 나왔어서 공부 좀 더 할 걸하고 생각했다. 뭔가 그래프를 보면 알겠지만, 한 번에 확 오른 것이 아니라 계단식으로 올라갔다. 물론..

📕 Coding Test/📕 백준

[JAVA] 백준 1238: 파티

https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 문제 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비한다. 각각의 학생들은 파티에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 하지..

📙 CS/📙 Algorithm

[Algorithm] DFS (깊이 우선 탐색)

DFS (Depth - First Search) 깊이 우선 탐색 (DFS) 는 그래프 탐색 기법 중 하나이다. 간단히 그래프의 시작 노드에서 출발하여 탐색할 한 쪽 분기의 최대 깊이까지 탐색 후, 다른 분기로 이동한 뒤 탐색을 수행하는 알고리즘이다. 기능 특징 시간 복잡도 (노드 수:V , 에지 수:E) 그래프 완전 탐색 1. 재귀 함수로 구현 2. 스택 자료 구조 이용 O(V + E) DFS 는 크게 두 가지 방법으로 구현할 수 있다. 1. 재귀 함수 2. 스택 나는 두 방법 중 재귀 함수로 구현을 많이 한다. 사실은 재귀 함수 또한 스택의 성질인 후입선출(FIFO)을 갖는다. 또한 DFS 는 한 번 방문한 노드를 재방문하면 안되기에 이를 체크해주는 배열이 필요하다. 이제 예시를 보자. 아래와 같은 그..

📙 CS/📙 Algorithm

[Algorithm] Graph 표현 방식

알고리즘에서 '그래프(Graph)' 는 굉장히 중요한 자료구조이다. 실제 코딩 테스트에서도 그래프 관련 문제가 자주 나오기 때문에 알고리즘 공부를 한다면 꼭 알아야 한다. 그래프란 노트(Node) 와 에지(Edge) 로 구성된 집합이다. 노드는 데이터의 표현 단위이며 에지는 이를 연결한다. 가장 잘 알려진 그래프 알고리즘인 DFS, BFS, Dijkstra 등 모두 그래프를 알아야 이해할 수 있다. 오늘은 그래프를 표현하는 여러 방법 중 몇 가지를 알아보고자 한다. 코딩 테스트를 준비한다면 꼭 꼭 개념을 공부하고 넘어가도록 하자. 1️⃣ 에지 리스트(Edge List) 에지 리스트는 말 그대로 에지를 중심으로 그래프를 표현하는 방법이다. 보통 2차원 배열을 사용하며 배열에 출발, 도착 노드와 가중치를 저..

📗 Back-end/📗 JPA

[JPA] JPA Auditing, BaseTimeEntity

1️⃣ 개요 요즘 캡스톤 디자인 발표 전 막바지 작업을 한다고 블로그 관리를 거의 못했다. 대신 그동안 프로젝트를 하며 공부한 내용, 알게된 내용이 굉장히 많았고, 모두 블로그에 올릴 생각이다. 우선 현재 하고 있는 프로젝트의 경우 DB 테이블이 세 개밖에 나오지 않는다. user, reservation, room 으로 간단하게 구성했다. 만약 테이블이 많아져 DB가 복잡해진다면, 생각보다 column이 중복되는 경우가 많다고 한다. 이를 방지하기 위해 등록 날짜 (create_date), 업데이트 날짜 (update_date)를 자동으로 추가할 수 있는 방법이 있다. 2️⃣ BaseTimeEntity 가장 먼저 'BaseTimeEntity' 라는 추상 클래스를 생성해야 한다. 그리고 다음과 같은 어노테..

📗 Back-end/📗 JPA

[JPA] JPA 기본 개념 (구동 방식, 영속성, 영속성 컨텍스트)

1️⃣ 개요 JPA 에 대한 기본 개념을 익히기 전에 ORM, JPA, Hibernate 가 무엇인지 알고 공부하는 것이 좋다. https://jnsodevelop.tistory.com/41 [JPA] ORM, JPA, Hibernate 개념 ORM ORM (Object-Relational Mapping) 은 말 그대로 객체와 관계형 데이터베이스가 매핑(Mapping)되는 것을 줄여서 표현한 것이다. 객체와 데이터베이스 테이블간의 연결을 도와준다. SQL 쿼리문이 아닌 프로 jnsodevelop.tistory.com 오늘은 JPA 구동 방식, 영속성, 영속성 컨텍스트 등에 대해 공부해보았다. 2️⃣ JPA 구동 방식 JPA 구동 방식에 대한 큰 틀은 위 그림과 같다. 'Persistence' 는 영속성이..

박갈
미 개발 구역