전체 글122 @ModelAttribute 와 @RequestBody @RequestBody ( Http 바디 정보를 편리하게 조회: 주로 API JSON에서 사용한다. ) 클라이언트가 보내는 HTTP의 바디 메세지(json)을 Java 객체로 변환해준다. (이때 HttpMessageConverter을 이용하여 타입에 맞게 변화한다.) 각각의 필드 단위로 적용하는 것이 아니라 전체 객체 단위로 적용된다. 헤더 정보가 필요하면 HttpEntity를 사용하거나, @RequestHeader을 사용한다. @PostMapping("/api/user-add") public long makeUser(@RequestBody UserMakeDto userMakeDto) { Member member = Member.makeUser(userMakeDto.getLoginId(), userMak.. Spring,SpringBoot 2023. 2. 15. SpringBean, IOC, DI 스프링은 자바기반 프레임 워크로 개발을 편리하게 해 주기 위해서 사용한다. 이때 다형성을 유지하기 위해서는 OCP, DIP가 위배된다. 이를 해결하기 위해서 스프링에서는 IOC를 지원한다. Container : 빈을 관리하는 것으로, 인스턴스의 생성 주기, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 한다. Spring Conatiner : Spring Framework의 핵심부에 위치하며, 종속 객체 주입을 이용하여 Application을 구성하는 Component들을 관리한다. 이때 Spring Container에서 생성되는 객체를 Bean이라고 한다. IOC( Inversion of Control) 제어의 역전: 개발자가 직접 인스턴스를 생성하고 의존관계 주입을 하는 것이 아니라 IOC Cont.. Spring,SpringBoot 2023. 2. 11. Array 배열 복사의 4가지 방법 1. 새로운 배열 생성 후 포문으로 도는 방법 for : [1, 2, 3, 4, 5] int[] arr = {1, 2, 3, 4, 5}; //1. for 문을 이용 int[] cpyArrFor = new int[arr.length]; for (int i = 0; i < arr.length; i++) { cpyArrFor[i] = arr[i]; } System.out.println(" for : " + Arrays.toString(cpyArrFor)); System.out.println(); 2. arr.clone()를 이용하는 방법 clone : [1, 2, 3, 4, 5] //2. clone을 이용 int[] cpyArrClone = arr.clone(); System.out.println(" clon.. JAVA 2023. 2. 10. 프로세스와 스레드 스터디 중에 사용했던 발표 자료입니다 💡 아이스 브레이킹 → 단골 질문으로 면접을 준비했는지 확인하는 질문! Q. 면접에서 프로세스와 스레드의 차이는 왜 계속 물어보는 걸까? → 기본적인 동작 방식, 컴퓨터의 동작방식을 알고 있는지 확인하기 위해 물어보는 질문! 간단하게 프로세스와 스레드란!? 프로세스 : 운영체제에 의해 실행되는 프로그램의 인스턴스입니다. 스레드 : 프로세스 내에서 실행되는 독립적인 실행 흐름입니다. 간단하게 그림을 먼저 보다면 스레드가 하나인 싱글 스레드 프로세스와 멀티 스레드를 가진 프로세스의 차이는 아래 사진과 같습니다. 각 프로세스는 코드, 데이터, 파일을 가지고 있고 스레드는 독립되어 레지스터 세트, 프로그램 카운터 (PC), 스택 영역을 가지고 있음을 확인할 수 있다. 간단하.. CS 2023. 2. 9. DataBase ⭐️ 데이터 베이스란 무엇인가 - 특정 조직의 여러 사용자가 '공유'하여 사용할 수 있도록 '통합'해서 '저장'한 '운영'데이터의 집합이다. - 일정한 규칙, 규약을 통해 구조화되어 저장되는 데이터의 모음이다. 공유데이터 : 특정 조직의 여러사용자가 소유하고 이용할 수 있어야 한다. 통합데이터 : 데이터베이스는 중복을 허용하지 않는다. 따라서 중복을 최소화하고 통제가 가능한 중복만 허용한 데이터이다. 저장데이터 :컴퓨터가 접근할 수 있는 매체에 데이터베이스를 저장해야한다. 운영데이터 : 조직을 운영하고 조직의 주요 기능을 수행하기 위해 꼭 필요하고 지속적으로 유지해야 한다. ⭐️ 데이터 베이스의 특징 실시간 접근성 : 사용자의 데이터 요구에 실시간으로 응답할 수 있어야 한다. 계속 변화 : 삽입, 삭제,.. CS 2023. 1. 15. IP와 TCP/UDP OSi 계층 프로토콜 응용/표현/세션 계층 (5,6,7 계층) FTP, Telnet, SSH, DNS, SNMP, SMTP 전송계층 (4계층) TCP, UDP 네트워크 계층 (3 계층) IP , (ICMP, IGMP) (ARP, RARP) 계층 3계층 4계층 프로토콜 IP TCP UDP 신뢰성 여부 비연결성(서비스 불능상태여도 정송), 비신뢰성(패킷의 소실, 순서 보장 하지 않는다) 연결 지향형 프로토콜 (신뢰성 보장) 비연결 지향형 프로토콜 (신뢰성 미보장) TCP UDP 특징 장점: 서버와 클라이언트의 신뢰성 구축시에 3-wqy handshake (마치 물리적으로 연결되어있는것처럼 전송) 안전성(순서, 데이터) 보장 -> 신뢰성이 높다 단점 : 속도가 오래걸려서 부하가 심함 체크섬을 포함 네트워크의 .. CS 2022. 12. 8. 스프링부트 3.0 세팅 (인텔리제이, 맥) https://start.spring.io/ 원하는 dependencies를 추가하고 generate 한다. generate한후 인텔리제이에서 open 한다. spring boot 3.0은 자바 17 이상을 선택해야 한다. Java 17 설치 https://www.oracle.com/java/technologies/downloads/#java17 Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com 자바 17이 기본 설정이 아닐 때 그냥 빌드하면 에러가 발생한다. 인.. Spring,SpringBoot 2022. 12. 8. [백준] 2170 선 긋기 : 스위핑(Sweeping) 2170번: 선 긋기 첫째 줄에 선을 그은 횟수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 다음 N개의 줄에는 선을 그을 때 선택한 두 점의 위치 x, y(-1,000,000,000 ≤ x < y ≤ 1,000,000,000)가 주어진다. www.acmicpc.net 왼쪽 부터 선형 순회 하면 한번의 탐색으로 값을 낸다. [JAVA 코드] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class Main { priva.. 알고리즘 2022. 11. 25. [백준 Java] 2812 크게만들기 그리디 알고리즘 [링크] https://www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net [문제풀이 방법] 가장 큰 숫자를 만들기 위해서는 앞자리가 가장 큰 숫자가 나와야 한다. 따라서 앞자리의 제일 큰 숫자가 오도록 숫자를 찾으면 된다 하지만 문제는 N개중 K개를 지우는 경우이므로 앞에서부터 k까지만 탐색을 해야 뒤에 남은 자리의 숫자를 모두 채울 수 있다 예를 들어 123456의 6자리 숫자에서 4자리를 지우는 경우에는 (0~4범위 [1,2,3,4,5])범위 안에서 탐색하여 5를 선택하고 하나를 선택하였으므로 탐색 가능 범위가 (6~6범위 [6])까.. 알고리즘 2022. 11. 10. [백준 Java]1717 집합의 표현 https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m ≤ 100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 www.acmicpc.net 크루스칼 알고리즘 풀이에 사용되는 union과 findParent 메서드를 생성하여 해결하였다 먼저 초기에 각 노드들의 부모를 자기 자신으로 초기화한다. 명령으로 union을 하라고 들어온다면 먼저 a, b의 가장 조상 노드를 찾는다 그 후에 두 조상노드 값 중 더 작은 값으로 조상 노드를 갱신하면 union 된다.(마치 트리구조 같이) 명령으로 print.. 알고리즘 2022. 11. 9. [백준 JAVA] 2589 보물섬 (BFS,너비 우선 탐색) https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net input 저장 시 map에 'L'인 경우 true를 저장 , 'W'인 경우 false를 저장하였습니다. 이문제의 포인트는 한 땅에서 가장 멀리 있는 두 육지를 찾고 두 육지의 까지의 시간을 출력하는 것이라 생각했습니다. 하지만 한 지점에서부터 탐색을 한경우에는 땅이 여러 개인 경우, 가장 긴 두 육지의 시작 노드가 아닌 경우 등 최대 값을 보장할 수 없습니다. 따라서 모든 땅인 지점에서부터 너비 우.. 알고리즘 2022. 11. 8. [백준 JAVA] 7562 나이트의 이동, BFS(너비 우선 탐색) https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net https://www.acmicpc.net/problem/2178 미로탐색 문제와 아주 유사하다. 너비우선 탐색을 이용하여 이동위치의 값을 갱신해가면서 이동하여 값을 출력한다 큐에는 이동한 거리가 작은 순으로 들어있으므로 최소값을 만족한다. import java.awt.*; import java.io.BufferedReader; import java.io.IOException; import java.. 알고리즘 2022. 11. 6. 이전 1 ··· 5 6 7 8 9 10 11 다음