분류 전체보기 81

[Spring_4기 본캠프] 일정관리 앱 API 명세서와 트러블 슈팅 | Day 39

1. API 명세서  처음 API 명세서를 작성하려고 했을 때는 각 컬럼이 무엇을 의미하는지도 몰라서 작성하는데 어려움이 있었는데, 웹개발 프로젝트 이후로 두 번째로 작성하는 거라 큰 어려움은 없이 스스로 명세서를 작성할 수 있었다. 스프링에서 Swagger 의존성을 추가해서 자동으로 API 명세를 작성할 수도 있었는데 아직 Swagger는 익숙하지 않아서 애너테이션 사용법이나 결과물을 읽어내는건 좀 어려웠다.하지만 현업에서는 Swagger를 자주 사용한다고 하니 꼭 시간을 내서 공부를 해봐야겠다.  2. 트러블 슈팅  문제 1) 일정 전체 조회 BadGrammarException    최근 영어를 공부해놨던 것이 참 다행이라고 느끼는 순간들이 많았다. 우선 에러 메시지를 보면 당황스러우면서도 어떤 문제..

[Spring_4기 본캠프] 일정관리 앱 만들기 과제 ERD 다이어그램 | Day 38

1. ERD 다이어그램 : 데이터베이스 설계에서 사용되는 다이어그램으로, 데이터 간의 관계를 시각적으로 표현한 것 - 엔티티 (Entity) : 데이터베이스에서 관리해야 하는 데이터 집합- 속성 (Attribute) : 엔티티가 가진 세부 정보- 관계 (Relationship) : 엔티티 간의 연결이나 상호 작용- 키 (Key) : 엔티티의 각 데이터를 고유하게 식별하기 위한 속성  - 1 : 1 - 1 : 0- 1 : n Table todo_table { id BIGINT [pk] // Primary Key task VARCHAR // 일정 내용 author VARCHAR // 작성자 pw VARCHAR // 비밀번호 createDate DATETIME // 작성일 modifiedDate D..

[Spring_4기 본캠프] 레포지토리를 데이터베이스와 연결하기 | Day 37

1. JDBC란?: Java언어를 사용하여 DB와 상호 작용하기 위한 자바 표준 인터페이스로 데이터베이스 관리 시스템(DMBS)와 통신하여 데이터를 삽입(C),검색(R),수정(U) 및 삭제(D)할 수 있게 해준다. -> 인터페이스는 implements하여 확장할 수 있다.- JDBC는 표준 API로 여러 종류의 DB와도 일관된 방식으로 상호 작용할 수 있다. 여태까지 일정관리 프로그램은 임시 자료구조 Map을 데이터 저장소로 사용했었는데 이제 JDBC를 이용해 MySQL로 데이터베이스를 바꿔치기 해줘야 한다. 사실 처음에 실습을 시작할 때 나중에 데이터베이스를 정하면 바꿔주기만 하면 된다고 해서 복붙수준이겠거니 생각했는데.. 사실 코드를 아예 갈아엎는다고 해도 과언이 아니다. 공들여서 열심히 만든 레포지..

[SQL] 프로그래머스 문제 풀이 - 최솟값 구하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL문을 작성해주세요.SQL문을 실행하면 다음과 같이 나와야 합니다.시간2013-10-14 15:38:00 * 컬럼 이름 (위 예제에서는 "시간")은 일치하지 않아도 됩니다. SELECT MIN(DATETIME)FROM ANIMAL_INS - SELECT MAX(칼럼..

[SQL] 프로그래머스 문제 풀이 - 상위 n개 레코드

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL문을 작성해주세요.SQL문을 실행하면 다음과 같이 나와야 합니다.NAMEJack  SELECT NAMEFROM ANIMAL_INSORDER BY DATETIMELIMIT 1 - 가장 맨 위 행 1개만을 조회하기 위해 LIMIT문 사용- LIMIT n = 맨 위에서부터 n개..

[Spring_4기 본캠프] 일정관리 앱 비즈니스 요구사항 정리 | Day 36

▶ Lv1.일정관리 앱 과제의 비즈니스 요구사항 분석 및 설계▼ 데이터 모델- ID : 각 일정의 고유 식별자 (Primary Key)- 할일 (task) : 일정의 제목 또는 주요 내용- 작성자명 (author) : 작성자의 이름- 비밀번호 (pw) : 일정 수정/삭제 시 검증을 위해 사용- 작성일 (createDate) : 일정 작성 날짜와 시간 ( 생성 시 시스템에서 자동 설정 )- 수정일 (modifiedDate) : 일정 수정 날짜와 시간 ( 최초 생성 시 작성일과 동일하며 수정 시 자동 갱신 ) ▼ 기능 요구사항1) 일정 생성- 새로운 일정을 생성하고 데이터베이스에 저장- 입력값 : 할일, 작성자명, 비밀번호 ( 작성일과 수정일은 자동 설정 ) 2) 전체 일정 조회- 등록된 일정 목록을 조회-..

[Spring_4기 본캠프] 메모장 실습과 Postman, 깃모지 | Day 35

1. 실습을 활용해 일정관리 앱으로 둔갑시키기  인프런 강의만 듣다가는 과제를 끝내지 못할 것같아 캠프에서 지급해준 강의에 나온 메모장 만들기 실습을 바로 진행하기로 했다.메모장이나 일정관리 앱이나, 이름만 다르지 거기서 거기 아닌가? 라는 생각이 들어 Memo를 Todo로 바꾸며 프로그램을 작성했다.↓ 1차 완성 코드 ( CRUD 기능만 있음 ) ↓더보기package com.example.todo.entity;import com.example.todo.dto.ToDoRequestDto;import lombok.AllArgsConstructor;import lombok.Getter;/** * 일정 관리 애플리케이션의 ToDo Entity 클래스 * 이 클래스는 데이터베이스의 ToDo 테이블과 매핑되며 일..

3 계층 아키텍쳐 (3-tier-architecture) VS 3 레이어 아키텍쳐(3-layer-architecture)

◆ 3계층 아키텍쳐 ( 3-tier-architecture ): 프레젠테이션 계층 (사용자 인터페이스) / 데이터가 처리되는 애플리케이션 계층 / 데이터가 저장 및 관리되는 데이터 계층 이라는 3개의 논리적이고 물리적인 컴퓨팅 계층으로 구성하는 확립된 소프트웨어 애플리케이션 아키텍쳐 1) 프레젠테이션 계층 - 일반 사용자가 애플리케이션과 상호작용하는 애플리케이션의 사용자 인터페이스 및 커뮤니케이션 계층- 최상위 레벨 계층으로 일반적으로 HTML, CSS 및 JacaScript를 사용해 개발 2) 애플리케이션 계층- 논리 계층 혹은 중간 계층이라고 하는 애플리케이션 핵심 계층- 특정 비즈니스 규칙 세트인 비즈니스 논리를 사용하여 프레젠테이션 계층에서 수집된 정보가 처리된다.- 데이터 계층의 데이터를 추가,..

[Spring_4기 본캠프] Spring 입문 - 스케줄러 실습과 트러블슈팅 | Day 34

1. 메모장 만들기 실습  며칠 전 일정관리 앱을 Spring 기반으로 만드는 과제가 발제되었는데 캠프에서 제공하는 강의만으로는 절대로 과제를 진행할 수 없을 것같아서 인프런으로 김영한 선생님의 스프링 입문 강의를 듣고있었다. 하지만 코드를 따라치면서도 강의 내용이 이해가 되지 않아서 20분도 안되는 강의를 5~6번씩 반복해서 들으니 시간이 너무 많이 낭비되고 있다는 생각이 들었다.고민하던 찰나 다른 동료분들이 캠프 강의 초반말고 후반에 실습부분을 바로 들으면 더 이해가 잘된다고 조언해주셨다.강의에서는 메모장 만들기 실습을 하는데 나는 그냥 스케줄러로 변경해서 실습을 하면서 과제를 연습하고 있었다. 2. 트러블 슈팅  강의를 들으면서 실습을 진행한 지 10분밖에 안되었는데 첫 번째 에러가 났다.이제는 빨..

[SQL] 프로그래머스 문제 풀이 - 아픈 동물 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 동물 보호소에 들어온 동물 중 아픈 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.  SELECT ANIMAL_ID, NAMEFROM ANIMAL_INSWHERE INTAKE_CONDITION = 'Sick'ORDER BY ANIMAL_ID - WHERE절을 사용하면 테이블에서..