728x90

Study 182

HTTP 심화

Prorocol? 서로 주고 받을 데이터에 대한 형식을 정의한 것, 서로 간의 통신을 위한 약속 규칙. URL? - Uniform resource identifier, 웹상 존재하는 HTML, 문서, 멀티미디어 파일 등의 위치를 지정할 때 사용하는 표현 방식 - 인터넷 상의 리소스 위치를 나타낸다. HTTP? - 웹을 구성하는 세가지 요소 중 하나 - Hyper Text Transfer Protocal, 텍스트 기반의 프로토콜이다. - 웹에서 사용되는 HTML 문서, 멀티미디어, 파일 등의 데이터를 전송할 때 사용되는 통신 프로토콜 - stateless 상태를 유지하지 않는다. 서버가 클라이언트의 정보를 저장하지 않는다. 같은 클라이언트가 요청을 해도 구별할 수 없다. 그래서 쿠키 ( 서버측 기술, 클라..

JAVA/SpringBoot 2024.04.15

Spring MVC, DDD

MVC Model : 데이터 처리 연산 로직 //View 화면 : 스프링에서 화면을 잘 만들지 않아서 스킵할게요 Controller : 모델과 뷰를 이어주는 중간 매개체. 뷰에서 값이 오면 모델에게 일을 시키고, 모델이 결과를 주면 뷰에게 전달한다. Model: - 데이터를 가지고 연산을 하려면 데이터가 필요하다. 즉, DB와 소통이 가능해야 한다. - Service : 로직 담당 클래스 - Repository : DB 소통 담당 Controller - 사용자와 모델의 중간 매개체. 사용자가 요청하면 그에 맞는 모델 로직을 부른다 (Service를 부르겠죠?) 로직은 결과를 내서 다시 컨트롤러에게 전달하면 컨트롤러는 그 결과를 다시 뷰, 사용자에게 전달한다. DDD : Domain Driven Desig..

JAVA/Spring 2024.04.14

스프링의 주요 개념 : IoC, DI, Container, Bean

스프링의 주요 개념 (Core) Ioc : Inversion of Control Inversion : 정반대로 뒤집힘 Control : 제어, 프로그램의 흐름. = 프로그램의 흐름을 제어하는 주체가 정반대로 뒤집힌다. = 객체의 흐름(객체의 생성, 사용 등 라이프 사이클)을 제어하는 주체가 정반대로 됨. 원래 객체 생성은 나, 사용자가 new Product(); 했었는데 이걸 스프링이 해준다. DI :Dependency Injection 의존성 주입 의존한다 = 사용한다 = 객체를 사용한다. = 객체의 메소드, 필드를 사용한다. -> 사용하려면 객체 생성이 먼저 내가 직접 객체를 만드는 것이 아니라, 스프링이 만든 걸 주입 받아 사용한다. (객체에 대한 제어권을 스프링이 가진다. ) 스프링이 주입하는 역..

JAVA/Spring 2024.04.14

퀴즈 7회차

List - 배열과 연결 리스트는 새로운 원소를 마지막 위치에 추가하는 연산에 대해서는 공통적으로 상수시간 =O(1)으로 수행한다. - 배열은 임의적으로 접근이 가능하며 시간복잡도는 O(1)이다. - ArrayList는 메모리 공간을 연속적으로 사용하지만 , LinkedList는 메모리 공간을 랜덤하게 사용한다. - 연 결리스트는 포인터(혹은 연속자)가 주어진 상황에서는 전후 원소들과의 연결관계만 조정해주면 되므로 상수시간=O(1)이 소모된다. -스택과 큐는 배열, 연결리스트로 구현할 수 있다. 해시 테이블 - 원소의 해시값을 계산해 저장할 위치를 구한다. - 이상적으로 모든 CRUD연산에 대해 O(1)의 시간 복잡도를 가진다. - 해시충돌을 극복하여 원소를 저장하는 방법에는 대표적으로 separate ..

기타 2024.04.12

REST API - POST , Json

POST: Create, 리소스 추가. 클라이언트가 서버에 데이터를 전송 시 사 요청 할 때마다 데이터가 생성되므로 역등하지 않고, 데이터를 변화시키기 때문에 안정성도 없다. QueryParameter 는 특정 데이터를 필터링 할 때 사용하기 때문에 적정하지 않다. Data body를 통해 데이터를 전달하는 것이 POST 방식이다. DataBody? http 통신에는 header, body가 존재한다. 클라이언트 서버에 데이터를 전달하는 방식으론 1. 주소에 pass value로 들어가는 방식 2. Query parameter로 필터링을 걸면서 데이터를 전달하는 방식이 있다. 이 방식들은 주소가 외부에 노출, 서버로 가기 위해 중간에 거치는 (라우터 같은) 여러 장비들의 로그에 어떤 데이터들이 전달 됐는..

JAVA/SpringBoot 2024.04.10

REST API - GET

REST API - GET: Read 기능을 한다. 리소스 취득. 특정 위치에 서버가 올라가 있다고 한다면, 이 서버로 클라이언트가 요청을 해줘야 한다. 클라이언트가 특정 요청을 보내주기 위해서는 진입점이 어떤 주소를 가지는지 작성해야 한다. RestApiController클래스를 만들어 어떤 주소를 받을 것인지 설정해보자. 스프링부트는 어노테이션 기반으로 작성하도록 설계되어있다. 이 어노테이션을 통해 XML 설정이 아닌, 어노테이션 설정으로 각 클래스, 메서드에 역할을 부여할 수 있따. @RestController //RestApi를 처리하는 컨트롤러 @RequestMapping("/api") //api로 시작하는 주소를 받겠다. RequestController: 특정 컨트롤러 기능을 하는 특정 클래스..

카테고리 없음 2024.04.10

REST API , URI 설계

REST API : Representational State Transfer 자원의 상태 전달. 네트워크 아키텍쳐 원리 REST 의 기준 1. 클라이언트 서버가 서로 독립적으로 분리되어 있어야한다. 한 곳에서 주고 받는 것이 아니라, 클라이언트와 서버가 떨어져 있는 상태에서 서로의 자원을 주고 받는 것 2. stateless. 요청에 대해서 클라이언트의 상태가 서버에 저장을 하지 않는다. 3. 캐시. 클라이언는 서버의 응답을 캐시 할 수 있어야 한다. 클라이언트가 캐시를 통해 응답을 재사용 할 수 있어야 함. 4. 인터페이스 일관성. 아키텍쳐 단순화. 다계층 구성, 확장. 작은 단위로 분리. 클라이언트 서버가 독립적으로 개선 되어야 한다. 자원 식별, 메세지를 통한 리소스 조작, 자기 서술적 메세지 5...

JAVA/SpringBoot 2024.04.09

Spring Boot - 간단한 Web , HTTP, Get, Post, Put

웹이란? world wide web. 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 공간, HTTP: Hyper Text Transefer Protocol 데이터를 주고 받는 프로토콜. 웹에서 우리가 데이터를 주고 받을 때 어떠한 형태로 보내겠다 라는 약속이 있어야 한다 (특정 문자를 보낼거야 - 보내는 프로토콜이 HTTP) HTML, XML, JSon, image , Voice, Video 등 컴퓨터에서 다루는 다양한 것을 전송 할 수 있다. 클라이언트는 요청 메세지를 전송할 때 서버에 http 통신을 통해 특정 데이털을 요청하는 데 이 때 필요한 것이 어디로 요청할까 하는 URI. 서버는 항상 리슨, 요청 대기 상태이다. 요청 메세지가 들어오면 메세지를 수신한다 - 이 메..

JAVA/SpringBoot 2024.04.09

퀴즈 6회 오답노트

auto boxing 오토박싱 : 기본형을 포장 클래스로 자동 변환해주는 기능. 따라서 사용자는 명시적을 new 키워드를 사용해 포장 클래스의 객체를 생성할 필요 없이 기본형 값을 직접 해당 포장 클래스의 참조 변수에 해당할 수 있다. // 정수형 기본형 변수 int primitiveInt = 10; // 정수형 포장 클래스 변수 Integer wrapperInt; // 오토박싱: 기본형 값을 포장 클래스 변수에 할당 wrapperInt = primitiveInt; // 오토박싱 후, 포장 클래스 변수 사용 System.out.println("Wrapper Integer Value: " + wrapperInt); auto unboxing 오토 언박싱: 포장 클래스 객체를 기본형 값으로 자동 변환해주는 기..

기타 2024.03.30

Java - 백준 :30501, 5554

https://www.acmicpc.net/problem/5554 5554번: 심부름 가는 길 승균이는 매일 학교, PC방, 학원에 다닌다. 반복되는 일상에 익숙해진 승균이는 이동시간을 단축해서 PC방에 더 오래 머물고 싶었다. 그래서 스톱워치를 들고 이동할 때마다 기록을 잰 후 집 www.acmicpc.net import java.util.Scanner; public class BOJ30501 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String[] s = new String [n]; for (int i=0; i< n; i++){ s[i] = sc.next(); ..

코딩테스트 2024.03.27
728x90
반응형