[SpringBoot] 스프링 부트의 구조
·
🔧Framework/Spring
스프링 부트 3의 구조스프링 부트는 각 계층이 양 옆의 계층과 통신하는 구조를 가지고 있다. 각 계층은 서로 소통할 수 있지만 다른 계층에 직접적인 영향을 주지는 않는다. 프레젠테이션 계층HTTP 요청을 받아 비즈니스 계층으로 전송하는 역할을 한다. 컨트롤러가 프레젠테이션 계층 역할을 하며컨트롤러는 여러개 존재할 수 있다. 비즈니스 계층비즈니스 로직을 처리하는 계층이다. 프로세스를 구현하기 위한 로직인 서비스가 비즈니스 계층의 역할을 한다. 퍼시스턴스 계층데이터베이스 관련 로직을 처리한다. 데이터베이스에 접근하는 DAO(데이터베이스 계층과 상호작용 하기 위한 객체)객체를 사용할 수 있다. Repository가 퍼시스턴스 계층의 역할을 한다.  스프링 부트 디렉터리 구성main실제 코드를 작성하는 공간. ..
[SpringBoot] 스프링 부트 알아보기 - 2
·
🔧Framework/Spring
@SpringBootApplicationimport org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}해당 코드가 있는 파일은 자바의 main() 메서드와 같은 역할을 한다. @SpringBootApplication 애너테이션은 스프링부트에 필요한 기본 설정을 해준다. "SpringApplication.run(..
[SpringBoot] 스프링 부트 알아보기 - 1
·
🔧Framework/Spring
스프링 부트 간단 예제@RestControllerpublic class TestController{ @GetMapping("/test") public String test() { return "Hello World!"; }}TestController.java에 위 코드를 작성하고 SpringBoot를 실행하고웹 브라우저에서 https://localhost:8080/test로 접속하면 Hello world를 확인할 수 있다 localhost인 127.0.0.0은 컴퓨터 네트워크에서 사용하는 루프백 호스트명이며 현재 사용중인 컴퓨터를 의미한다. 8080은 스프링의 포트 번호이고, /test는 @GetMapping이라는 애너테이션으로 메서드와 매핑할 때 스프링 부트에서 설정한 경로이다.  스..
[SpringBoot] 스프링과 스프링 부트
·
🔧Framework/Spring
스프링엔터프라이즈 애플리케이션 : 대규모의 복잡한 데이터를 관리하는 애플리케이션 소프트웨어 분야가 발전함에 따라 앤터프라이즈 애플리케이션은 사용자의 많은 요청을 동시에 처리해야 해서버의 성능, 보안, 안정성이 매우 중요하게 되었다.  스프링은 엔터프라이즈 애플리케이션을 위한 개발환경을 제공하여 기능 개발에만 집중할 수 있게 해준다. 스프링 프레임워크는 서버 성능, 안정성, 보안을 높은 수준으로 제공하여 개발자는 기능 개발에 집중할 수 있게 되었다.  스프링 부트스프링은 많은 기능을 제공하는 도구이지만, 설정이 매우 복잡하다는 단점이 있다. 스프링부트는 스프링 프레임워크를 더 쉽고 빠르게 이용할 수 있도록 만들어주는 도구이다. 스프링 프로젝트 설정을 빠르게 할 수 있고, 의존성 세트라고 하는 스타터를 활용..
[컴퓨터구조] 1. Computer Abstractionsand Technology
·
🖥CS/컴퓨터 구조
Computer Revolution컴퓨터 기술의 발전의 이해의 중요한 요소중 하나는 무어의 법칙(Moore's Law)였다. 무어의 법칙 : 마이크로 칩의 용량이 2(1.5)년 마다 2배 증가하고 가격은 반으로 줄어든다. -> 최근에는 물리적인 한계로 인해 무어의 법칙이 잘 맞지는 않는다. -> 하드웨어의 발전보다는 코어를 여러개 사용하는 Parallel 방식으로 진행된다.  이러한 기술적 발전은자동차에 컴퓨터를 이식하고,스마트폰의 시대를 만들었고휴먼 게놈 프로젝트를 가능하게 하였고World Wide Web, Search Engine 등 다양한 기술을 가능하게 만들었다. Classes Of Computer Personal Computers상용적이고, 다양한 소프트웨어가 있다. 비용과 성능 사이의 trad..
[알고리즘] - 배낭문제(Knapsack Problem)
·
🤔알고리즘
배낭문제란?배낭 문제는 주어진 제한된 용량의 배낭에 최대한의 가치를 가진 아이템을 넣는 방법을 찾는 문제를 의미한다. n개의 물건의 무게w와 가치 v에 주어질 때, 용량이 k인 배낭의 용량을 초과하지 않고 담을 수 있는 최대의 가치를 찾는 문제이다. 배낭문제의 해결 방법모든 경우 탐색 (brute-force)물건을 담는다/담지 않는다의 경우를 생각하여 2^n의 모든 조합을 탐색하는 방법은 시간 복잡도가 너무 커서 n값이 큰 경우에는 해결할 수 없다. 탐욕적 알고리즘 (Greedy)단위 무게당 높은 가치부터 담는 방법.분할 배낭 문제에서는 효율적으로 동작한다. 동적 프로그래밍 (Dynamic Programming)주어진 아이템과 배냥의 용량을 이용해 가능한 가치의 조합을 계산브랜치 앤 바운드 (Branch..
[백준] 1647 - 도시 분할 계획 (Python)
·
📖코딩테스트/BOJ
문제동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 그러다가 평화로운 마을에 가게 되었는데, 그곳에서는 알 수 없는 일이 벌어지고 있었다. 마을은 N개의 집과 그 집들을 연결하는 M개의 길로 이루어져 있다. 길은 어느 방향으로든지 다닐 수 있는 편리한 길이다. 그리고 각 길마다 길을 유지하는데 드는 유지비가 있다. 임의의 두 집 사이에 경로가 항상 존재한다. 마을의 이장은 마을을 두 개의 분리된 마을로 분할할 계획을 가지고 있다. 마을이 너무 커서 혼자서는 관리할 수 없기 때문이다. 마을을 분할할 때는 각 분리된 마을 안에 집들이 서로 연결되도록 분할해야 한다. 각 분리된 마을 안에 있는 임의의 두 집 사이에 경로가 항상 존재해야 한다는 뜻이다. 마을에는 집이 하나 이상 있어야 한다. 그렇..
[JavaScript] 자바스크립트의 함수
·
🗨Language/자바스크립트
함수란?함수는 작업을 수행하거나 값을 계산하는 과정을 하나의 블록으로 감싸서 실행 단위로 만들어 놓은 것을 의미한다. function sum(a,b) { return a + b}sum(10,20) 함수를 정의하는 법1. 함수 선언문// 선언문function add(a,b) { return a+b}// 표현식const sum = function(a,b) { return a+b}함수 선언문은 표현식이 아니라 일반 문(statement)로 분류됨.함수 선언으로 어떠한 값도 표현되지 않았으므로 표현식이 아니라 statement로 분류된다. 자바스크립트 엔진은 코드의 문맥에 따라 동일한 함수를 statement가 아니라 표현식으로 해석하는 경우가 있다. 따라서 아래의 경우처럼 변수에 할당할 수 있다. 함수 선언문..
여우비_YoBi
'분류 전체보기' 카테고리의 글 목록 (16 Page)