분류 전체보기 8

스프링 입문 - 코드로 배우는 스프링 부트,웹 MVC, DB 접근 기술 _ 6강

회원 웹 기능 - 홈 화면 추가*홈 컨트롤러package hello.hello_spring.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class HomeController { @GetMapping("/") public String home() { return "home"; }} *회원 등록 폼 컨트롤러package hello.hello_spring.controller;import hello.hello_spring.domain.Member;import hello.hello_..

카테고리 없음 2025.05.17

스프링 입문 - 코드로 배우는 스프링 부트,웹 MVC, DB 접근 기술 _ 5강

스프링 빈과 의존관계스프링 빈을 등록하고, 의존관계 설정하기- 회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 구수 있게 의존관계를 준비하자. *회원 컨트롤러에 의존관계 추가//- 생성자에 '@Autowired'가 있으면 스프링이 연관된 객체를 스프인 컨테이너에서 찾아서 넣어준다. 이렇게 객체 의존관계를 외부에서 넣어주는 것을 DI(Dependency Injection), 의존성 주입이라 함.- 이전 테스트에서는 개발자가 직접 주입했고, 여기서는 @Autowired에 의해 스프링이 주입해줌. *오류 발생 *memberService가 스프링 빈으로 등록되어 있지 않다.참고 : helloController는 스프링이 제공하는 컨트롤러여서 스프링 빈으로 자동 등록된다. '@Controller'가 있으면 ..

카테고리 없음 2025.05.10

스프링 입문 - 코드로 배우는 스프링 부트,웹 MVC, DB 접근 기술 _ 4강

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

카테고리 없음 2025.05.07

SQL 첫걸음 8장_데이터베이스 설계

35강 - 정규화- 데이터베이스의 테이블을 규정된 올바른 형태로 변경하고 분할하는 것. (데이터베이스의 설계 단계에서 행해짐)- 경우에 따라서 기존 시스템을 재검토할 때 정규화하는 경우도 있음.  1. 정규화- 정규화는 단계적으로 실시. 그 첫번째 단계가 제1 정규화로, 이를 시행하면 제1 정규형 테이블을 만들 수 있음.  2. 제1 정규형- 관계형 데이터베이스의 테이블에는 하나의 셀에 하나의 값만 저장할 수 있다는 제약이 있음.예) 적어도 상품코드와 상품명, 개수 데이터를 담는 세 개의 열로 나누어야 함. ; 하나의 셀에 하나의 값만 저장할 수 있도록 하고, 반복되는 부분을 세로(행) 방향으로 늘려나가는 것이 제1정규화의 제1단계. - 제1정규화에서 중복을 제거하는 테이블의 분할도 이루어짐.  - 주문..

카테고리 없음 2025.04.10

SQL 첫걸음 6장_데이터베이스 객체 작성과 삭제

25강. 데이터베이스 삭제 1. 데이터베이스 객체- 객체는 데이터베이스 내에 존재하는 실체를 가진 것 (예: 테이블, 뷰, 인덱스 등).- SELECT, INSERT 같은 SQL 명령은 객체가 아님.- 객체는 고유한 이름을 가지며, 이름은 명명규칙을 따라야 함. 2. 객체 이름 규칙- 기존 이름과 중복 불가- 숫자로 시작 불가, _ 제외한 특수문자 사용 불가- 예약어는 백틱(``) 또는 쌍따옴표("")로 감싸야 함- 의미 있는 이름을 사용 (예: sample61 같은 무의미한 이름은 피함) 3. 스키마- 데이터베이스 객체가 저장되는 그릇(네임스페이스) 역할- 스키마가 다르면 같은 이름의 객체도 공존 가능- MySQL: 스키마 = 데이터베이스 / Oracle: 사용자별 스키마 존재26강. 테이블 작성·삭제..

카테고리 없음 2025.04.05

SQL 첫걸음 5장_집계와 서브쿼리

-- 스칼라 서브쿼리 사용INSERT INTO sample541 VALUES ( (SELECT COUNT(*) FROM sample51), (SELECT COUNT(*) FROM sample54) ); -- INSERT SELECT INSERT INTO sample541 SELECT 1, 2;​UPDATE sample54 SET a = (SELECT MAX(a) FROM sample54);20강 행 개수 구하기 - COUNT - 대표적인 집계함수COUNT (집합)SUM (집합)AVG (집합)MIN (집합)MAX (집합) - SQL은 데이터베이스라 불리는 '데이터 집합'을 다루는 언어  1. COUNT로 행 개수 구하기- SQL은 집합을 다루는 집계함수를 제공- 집계함수는 인수로 집합을 지정 / 때문에 집..

카테고리 없음 2025.03.31

SQL 첫걸음 4장_데이터의 추가, 삭제, 갱신

16강 행 추가하기 -INSERT- 데이터를 추가하는 방법- 데이터베이스의 테이블에 행을 추가하기 위해서 INSERT 명령을 사용INSERT INTO 테이블명 VALUES( 값 1, 값 2, ... ) - 데이터를 추가하는 경우 클라이언트에서 서버로 데이터를 전송하는 형식을 취함.- 서버 측은 전송받은 데이터를 데이터베이스에 저장.  1. INSERT로 행 추가하기 - RDBMS에서는 INSERT 명령을 사용해 테이블의 행 단위로 데이터를 추가.> 데이터베이스를 생성하면 테이블에는 아무런 데이터도 저장되어 있지 않은 상태가 됨.> 이후 INSERT 명령으로 데이터를 추가해 데이터베이스를 구축.INSERT INTO sample41 VALUES (l, ’ ABC’, '2014-01-25’); - 값을 지정할..

카테고리 없음 2025.03.27

SQL 첫걸음 3장_정렬과 연산

9강_정렬 - ORDER BY  SELECT 명령의 ORDER BY 구를 사용하여 검색결과의 행 순서를 바꿀 수 있음.- 정렬(sort) 방법SELECT 열명 FROM 테이블명 WHERE ORDER BY 열명 ORDER BY  구를 지정하지 않을 경우에는 데이터베이스 내부에 저장된 순서로 반환.; 정해진 순서로 결괏값을 얻기 위해서는 ORDER BY 구를 지정해야 함.  1. ORDER BY로 검색 결과 정렬하기- WHERE 구 뒤에 ORDER BY 구를 지정하는 경우SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명 검색 조건이 필요없는 경우에는 WHERE 구를 생략. -FROM 구 뒤에 ORDER BY 구를 지정하는 경우SELECT 열명 FROM 테이블명 ORDER BY 열명 ..

카테고리 없음 2025.03.25