분류 전체보기 290

[Spring] 회원 관리 예제 - 웹 MVC 개발

회원 관리 예제 - 웹 MVC 개발회원 웹 기능 - 홈 화면 추가HomeController를 만들자package hello.hellospring.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class HomeController { // localhost:8080/ 요청이 오면 이 메서드가 호출되어 home.html이 호출됨 @GetMapping("/") public String home() { return "home"; }}GetMapping("/")는 그냥 첫번째 local..

Spring/MVC 2024.04.29

[Spring] 스프링 빈과 의존관계

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

Spring/MVC 2024.04.29

[Spring] 회원 관리 예제 - 백엔드 개발

회원관리 예제 - 백엔드 개발비지니스 요구사항 정리회원 도메인과 리포지토리 만들기회원 리포지토리 테스트 케이스 작성회원 서비스 개발회원 서비스 테스트비지니스 요구사항데이터: 회원ID, 이름기능: 회원 등록, 조회아직 데이터 저장소가 선정되지 않음(가상의 시나리오)일반적인 웹 application layer 구조컨트롤러: 웹 MVC의 컨트롤러 역할서비스: 핵심 비즈니스 로직 구현ex) 중복 가입 불가리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨클래스 의존관계아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계데이터 저장소는 RDB, NoSQL 등등..

Spring/MVC 2024.04.29

[Spring] 스프링 웹 개발 기초

스프링 웹 개발 기초정적 컨텐츠서버에서 특별한 동작을 하지 않고 파일을 그대로 웹브라우저(client)로 전달스프링 부트는 정적 컨텐츠를 제공함 정적 컨텐츠 입니다. localhost:8080/hello-static.html원하는 파일을 넣으면 파일 그대로 반환됨내장 톰켓 서버가 요청을 받고 Spring에 controller가 있는지 찾아봄hello-static이라는 컨트롤러, 맵핑된 컨트롤러가 존재Xresources 안에 있는 static/hello-static.html을 찾음찾은 파일을 반환MVC와 템플릿 엔진Model, View, Controller서버에서 변형을 해서(EX. HTML 파일 변경) 웹브라우저(client)로 전달hello! empty단순히 hello-mvc를 열..

Spring/MVC 2024.04.28

[Spring] 스프링 View 환경설정

View 환경설정Welcome Page 만들기resources/static/index.html에 다음 파일 생성Hellohello스프링 부트가 제공하는 Welcome Page 기능static/index.html 을 올려두면 Welcome page 기능을 제공한다.thymeleaf 템플릿 엔진Controller 만들기hello.hellospring 패키지 안에 controller 패키지를 만들고 controller 클래스를 생성@Controllerpublic class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); r..

Spring/MVC 2024.04.28

[컴퓨터 네트워크] 07. IPv6(차세대 IP)

IPv6 IPv6 주소 IPv6로의 전환의 주된 이유는 주소공간 부족 IPv6의 거대한 주소 공간은 주소 고갈의 문제 해결 IPv6 조소는 128 비트 (16 바이트 (옥텟)) IPv4의 4배 길이 표현 128 비트를 컴퓨터는 쉽게 저장하지만, 인간은 다루기 쉽지 않다 바이너리 표기법과 16진 표기법 (Coloned Hexadecimal) 32개의 16진수를 4개씩 끊어서 FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF 이런식으로 적는다 주소공간 IPv6의 주소 개수는 2^128 개 주소 고갈 문제 해결 IPv4 주소(43억 개)의 296 배 (1028배) 3.4x10^34 개 주소 공간 할당 IPv6의 주소공간은 가변길이의 여러 블럭으로 분할하고, 각 공간은 특수 목적으로 사용 ..

[컴퓨터네트워크] 06. 멀티캐스트 라우팅(Multicast Routing)

멀티캐스트 라우팅(Multicast Routing) Introduction 현재의 인터넷은 유니캐스트만 있는 것이 아님 멀티캐스트 통신이 급증하는 추세임 Unicasting, Multicasting, and Broadcasting 기본 개념 멀티캐스트 라우팅 프로토콜 소개 cf) 유니캐스팅 하나의 소스, 하나의 목적지 One-to-One 경로상의 라우터는 한 출구 인터페이스로 하나의 패킷만 포워딩 멀티캐스팅 하나의 소스(source), 여러 목적지(destination) One to many 소스 주소는 unicast 주소, 목적지 주소는 그룹 주소 이 그룹 주소에 가입(join)한 모든 장치들이 데이터를 받을 수 있습니다. 그룹 주소는 그룹의 멤버를 지정 D 클래스 주소는 네트워크상의 특정 멀티캐스트 ..

[소프트웨어 공학] 06&07. Architecture Design / Design and Implementation

Architectural design(아키텍쳐 설계)아키텍쳐 설계는 소프트웨어 시스템의 구성을 이해하고,그 시스템의 전체 구조를 설계하는 것과 관련이 있습니다(designing the overall structure of that system).아키텍쳐 설계는 설계와 요구 사항 공학 간의 중요한 연결 고리로서,시스템의 주요 구조적 요소와 그들 간의 관계를 식별합니다.애자일 프로세스의 초기 단계에서 전체 시스템 아키텍쳐를 설계하는 것이 일반적으로 받아들여집니다.시스템 아키텍쳐을 리팩터링하는 것은 일반적으로 비용이 많이 듭니다. 왜냐하면 이것은 시스템의 많은 구성 요소에 영향을 미치기 때문입니다.Architectural abstraction(아키텍쳐 추상화)소규모에서의 아키텍쳐는 개별 프로그램의 아키텍쳐(t..

[소프트웨어 공학] 05. Requirements engineering

Requirements engineering(요구 공학) 고객이 요구하는 서비스를 제공(establishing the services)하고 운영되는 제약 조건(the constraints)을 설정하는 과정입니다. 시스템 요구사항은 요구 공학 과정에서 생성된 시스템 서비스 및 제약 조건의 설명입니다. What is a requirement?(요구사항이란?) 시스템 제약에서 상세한 수학적 기능 사양에 이르기까지 다양할 수 있습니다. 요구사항은 이중 기능을 수행할 수 있으므로 피할 수 없습니다(요구사항이 제공하는 두 가지 기능). 계약 입찰의 기초가 될 수 있으며 해석의 여지가 있어야 합니다(이해할 수 있어야 한다); 계약 자체의 기초가 될 수 있으며 상세하게 정의되어야 합니다; 이 두 명제 모두 요구사항이라..

[소프트웨어 공학] 04. Quality Configuration and Management

Software quality management(소프트웨어 품질 관리) 소프트웨어 제품에서 필요한 품질 수준이 달성되도록 보장하는 데에 중점을 둡니다. 세 가지 주요 관심사: 조직 수준(Organization level) 품질 관리(QM)는 고품질 소프트웨어로 이어질 조직 프로세스 및 표준의 체계(a framework of organizational processes and standards)를 수립하는 데 중점을 둡니다. 프로젝트 수준(Project level) QM은 특정 품질 프로세스(quality processes)의 적용과 이러한 계획된 프로세스가 따라졌는지 확인하는 데 관여합니다. QM은 또한 프로젝트를 위한 품질 계획(quality plan) 수립에도 관심이 있습니다. Quality man..