2022/08 39

Chapter 06. Spring Transaction(스프링 트랜잭션)

6.1 트랜잭션(Transaction)이란? Transaction(트랜잭션) 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위를 '트랜잭션'이라고 한다. ex) 오늘의 날씨 데이터를 가져와서 일기 정보를 DB에 저장하기까지의 작업 단위를 트랜잭션이라고 볼 수 있다. 트랜잭션의 속성 원자성(Atomicity) - 트랜잭션이 데이터베이스에 모두 반영되거나 또는 반영되지 않거나 반드시 둘 중 하나여야만 하다. 일관성(Consistency) - 트랜잭션의 작업 처리 결과는 언제나 일관적이어야한다. 독립성(Isolation) - 여러 트랜잭션들이 독립적으로 수행되어야 한다. 지속성(Durablity) - 트랜잭션이 성공적으로 완료된 경우 변화된 상태가 지속적으로 반영되어야한다. 트랜잭션의 연산 - 원자성 ..

Chapter 05. 날씨 데이터 CRUD

5.1 날씨 조회 API 작성 Ex) 조회 - Read repository에 함수 만들기 List findAllByDate(LocalDate date); service public List readDiary(LocalDate date) { return diaryRepository.findAllByDate(date); } Controller - GetMapping @GetMapping("/read/diary") List readDiary(@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date){ return diaryService.readDiary(date); } Note) 실행 결과 - GET send Ex) 날짜 범위를 정..

Chapter 04. 날씨 데이터 저장하기

4.1 openweathermap 데이터 확인 API key란 무엇인가? Aithentication(인증): API를 호출하는 대상을 확인하는 절차를 API 인증이라고 한다. API key 방식 API Token방식 API key: 특정 사용자만 알 수 있는 문자열을 말한다. API 제공처로부터 key를 발급 받도 API 호출 시에 key를 메시지 안에 넣어서 호출한다. openweathermap 서버는 메시지 안에서 key를 읽어서 누가 호출한 API인지 인증한다. API key를 이용해서 날씨 정보 불러오기 https://openweathermap.org/ Сurrent weather and forecast - OpenWeatherMap Access current weather data for any..

Chapter 03. DB에 작업하기

3.1 ORM 개념 이해하기 Persistence Framework란? persistance: 영속성 데이터의 영속성: 휴대폰을 새로 구매해도 기존에 있던 데이터를 끌어올 수 있는 것처럼 데이터가 없어지지 않는 특성을 말한다. Persistance Framework는 DB와의 연동되는 시스템을 빠르게 개발하고 안정적인 구동을 보장해주는 프레임워크를 말한다. 장점: 재사용, 유지 보수에 용이하다. 코드가 직관적이다. 종류 SQL Mapper: SQL을 개발자가 직접 작성한다. 매핑: 쿼리 수행 결과 객체 단점: DB 종류 변경 시에 쿼리 수정해야한다. 비슷한 쿼리를 반복적으로 작성해야한다. ORM(Object Relation Mapping): Object와 DB 테이블을 매핑한다. Java 함수를 사용하면..

Chapter 02. 프로젝트 준비하기

2.1 Spring Initializer Spring Boot 프로젝트 생성하기 start.spring.io 이클립스 / 인텔리제이 빌드 관리 도구 - 라이브러리 관리, 빌드 및 실행 Maven Project: Gradle Project: Spring Initializer 그룹: 회사 이름 개인: 블로그 도메인명을 쓰기도 한다. Artifact: 프로젝트 이름 Jar(Java Archive - 백엔드 서버만 만드는 경우 적합) vs War(Web Archive - 웹 어플리케이션 관련 내용 추가) LTS(Long Term Service): 8, 11, 17만 해당된다. lombok, Spring Web(API 서버를 만드려면 필수) 디펜던시 추가 2.2 프로젝트 구동 시키기 - build.gradle을 ..

Chapter 01. 프로젝트 진행 전 준비 사항

1.1 주제 JPA: 데이터를 가져와서 저장하는 방식 1.2 날씨 데이터 고르기 후보 1) 네이버에 날씨를 검색해서 검색 결과 크롤링 해오기 - By 기상청 2) 기상청에서 데이터를 얻어올 수 있을까? -> Open API를 통해 공공데이터를 제공한다. -> 공공데이터 포털에는 다양한 데이터가 있다. ex) 세금 관련, 날씨 관련, 코로나 관련한 데이터 등 다양하다. -> 그런데, 기상청은 국내에 한정된 날씨 데이터만 제공한다. 3) OpenWeatherMap API: 세계의 날씨 API

2022-08-28 [11회차] 알고리즘 스터디

1. 팔 - 실버1 08-28 일 출처 https://www.acmicpc.net/problem/1105 1105번: 팔 첫째 줄에 L과 R이 주어진다. L은 2,000,000,000보다 작거나 같은 자연수이고, R은 L보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net MySol) ======= 미해결 코드 ======== import java.util.Scanner; public class Test { static int findEight(String s){ int eightCnt = 0; for(char c : s.toCharArray()) { if (c == '8') { ++eightCnt; } } return eightCnt; } public s..

[스쿨선발대] 백엔드 스쿨 8월 수강후기

Part 01. mission1 내 주변 공공 와이파이 정보 구하기 과제 제출 영상 개인 프로젝트를 진행하면서 크게 배운점 개인 프로젝트는 20, 30대가 애용하는 의류 쇼핑몰을 테마로 해서 마일리지,쿠폰 서비스를 주제로 구현할 계획입니다. 평소에 쇼핑하는 것을 좋아해서 자주 이용하는 사이트를 떠올리다가 주제를 선택했습니다. 지난 프로젝트 과제였던 회원 관리 시스템 프로젝트를 이제 막 끝낸 상황이라서 개인 프로젝트 셋업 정도만 한 상태입니다. 제로베이스 스쿨에서 배운 회원가입 서비스를 이용해서 회원별로 생일과 등급에 따라 쿠폰을 지급하는 서비스를 하려고 합니다. 현재 프로젝트를 구상하는 단계이며 구체적인 부분은 천천히 생각하려고 합니다. 백엔드 스쿨에서 공부한 회원 가입, 로그인, 상품 주문, 백 오피스..