반응형

Back-end 46

[스프링 입문] 07. AOP

AOP가 필요한 상황 모든 메소드의 호출 시간을 측정하고 싶다면? 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면? MemberService 회원 조회 시간 측정 추가 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org.springframework.beans.factory.annotation.Aut..

Back-end/Spring 2021.03.19

[SQL로 하는 데이터 분석] 03. 데이터 조회로 기본 다지기

데이터 정렬 (1) star(별점) 컬럼을 기준으로 일단 오름차순 정렬하고, (2) 같은 별점인 경우에는 registration_date(등록일자) 컬럼을 기준으로 내림차순 정렬하려고 합니다. 즉, 안 좋은 리뷰부터, 최근 순으로 볼 겁니다. 그리고 정렬된 결과 중에서도 (3) 5번째 row까지만 일단 추려서 보고 싶습니다. SELECT * FROM review ORDER BY star ASC, registration_date desc LIMIT 5; 본 내용은 Codeit의 '개발자를 위한 SQL 데이터베이스' 강의를 참고하여 작성한 내용입니다.

Back-end/SQL 2021.03.19

[SQL로 하는 데이터 분석] 03. 데이터 조회로 기본 다지기

데이터 조회 (1) 나이가 20대이고, (2) 코드잇 피자 가게 사이트에 가입한 달이 7월인 회원들만 추려서 그 회원들에게 이메일로 할인 쿠폰을 발송하려고 합니다. SELECT * FROM member WHERE age BETWEEN 20 AND 29 AND MONTH(sign_up_day) = 7; 본 내용은 Codeit의 '개발자를 위한 SQL 데이터베이스' 강의를 참고하여 작성한 내용입니다.

Back-end/SQL 2021.03.19

[스프링 입문] 06. 스프링 DB 접근 기술

H2 데이터베이스 설치 H2 데이터 베이스 개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면 제공 H2 데이터베이스 버전은 스프링 부트 버전에 맞춘다. 권한 주기 : chmod 755 h2.sh 실행: ./h2.sh 데이터베이스 파일 생성 방법 jdbc:h2:~/test ~/test.mv.db 파일 생성 확인 이후부터는 jdbc:h2:tcp://localhost/~/test 테이블 생성하기 테이블 관리를 위해 프로젝트 루트에 sql/ddl.sql 파일을 생성 H2 데이터베이스에 접근해서 member 테이블 생성 drop table if exists member CASCADE; create table member ( id bigint generated by default as identity, name..

Back-end/Spring 2021.03.19

[스프링 입문] 05. 회원 관리 예제 - 웹 MVC 개발

회원 웹 기능 - 홈 화면 추가 홈 컨트롤러 추가 package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } 회원 관리용 홈 컨트롤러가 정적파일보다 우선 순위가 높다. Hello Spring 회원 기능 회원 가입 회원 목록 회원 웹 기능 - 등록 회원 등록 폼 컨트롤러 package hello.hellospring.contro..

Back-end/Spring 2021.03.18

[스프링 입문] 04. 스프링 빈과 의존 관계

컴포넌트 스캔과 자동 의존관계 설정 회원 컨트롤러가 회원 서비스와 회원 리포지토리를 사용할 수 있게 의존 관계를 준비하자 회원 컨트롤러에 의존관계 추가 package hello.hellospring.controller; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberCon..

Back-end/Spring 2021.03.18

[스프링 입문] 03. 회원 관리 예제 - 백엔드 개발

비즈니스 요구사항 정리 비즈니스 요구사항 정리 데이터 : 회원 ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음 (가상의 시나리오) 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인, 객체 (ex. 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨) 클래스 의존관계 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 ..

Back-end/Spring 2021.03.17

[스프링 입문] 02. 스프링 웹 개발 기초

정적 컨텐츠 정적 컨텐츠 'welcome page'처럼 server에서 하는 것 없이 파일 그대로 'web browser'에 내려주는 것 MVC와 템플릿 엔진 MVC Model, View, Controller 템플릿엔진(jsp, php) html을 그냥 주는 것이 아니라 서버에서 프로그래밍해서 동적으로 바꿔서 내려주는 것 View 화면을 그리는데 모든 역량을 집중 Model, Controller business logic과 관련, 내부적인 것을 처리하는 것에 집중 API API JSON 데이터 구조 포맷으로 클라이언트에게 전달하는 것 서버끼리 통신할 때도 API로 소통 package hello.hellospring.controller; import org.springframework.stereotype...

Back-end/Spring 2021.03.16

[HTTP 웹 기본 지식] 08. HTTP 헤더 2 - 캐시와 조건부 요청

캐시 기본 동작 캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저 로딩 속도가 느리다. 느린 사용자 경험 캐시 적용 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠른다. 빠른 사용자 경험 캐시 시간 초과 캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. 이때 다시 네트워크 다운로드가 발생한다. 검증 헤더와 조건부 요청 캐시 시간 초과 캐시 유효 시간이 초과해서 서버에 다시 요청하면 다음 두 가지 상황이 나타난다. 서버에서 기존 데이터를 변경함 서버에서 기존 데이터를 변경하지 않음 캐시 만료 ..

Back-end/HTTP 2021.03.09

[HTTP 웹 기본 지식] 07. HTTP 헤더 1 - 일반 헤더

HTTP 헤더 개요 HTTP 헤더 header-field = field-name ":" OWS field-value OWS (OWS: 띄어쓰기 허용) field-name은 대소문자 구분 없음 용도 HTTP 전송에 필요한 모든 부가정보 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... 표준 헤더가 너무 많음 필요시 임의의 헤더 추가 가능 (helloworld: hihi) HTTP - RFC2616 (과거) 헤더 General 헤더: 메시지 전체에 적용되는 정보 (Connection: close) Request 헤더: 요청 정보 (User-Agent: Mozilla/5.0) Response 헤더: 응답 정보 (Server: Apache) Entitl..

Back-end/HTTP 2021.03.08
반응형
LIST