◀ PREV [1] [···] [3] [4] [5] [6] [7] [8] [9] [···] [16] NEXT ▶ 컴네 시험 네트워킹 알고리즘 특징, 단점MAC CSMA/CDCDMA, CSMA/CA히든 터미널무선에서 충돌 회피연습문제 그림있는 문제들 잘 보고 풀어보기RTS/CTS라우터와 스위치의 역할, 차이ex- 라우터를 비용절감을 위해서 스위치로 바꾸면 어떤 일이 일어나는가? 2024. 6. 5. 백준 2504 : 괄호의 값 문제4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다.한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다.만일 X가 올바른 괄호열이면 ‘(X)’이나 ‘[X]’도 모두 올바른 괄호열이 된다.X와 Y 모두 올바른 괄호열이라면 이들을 결합한 XY도 올바른 괄호열이 된다.예를 들어 ‘(()[[]])’나 ‘(())[][]’ 는 올바른 괄호열이지만 ‘([)]’ 나 ‘(()()[]’ 은 모두 올바른 괄호열이 아니다. 우리는 어떤 올바른 괄호열 X에 대하여 그 괄호열의 값(괄호값)을 아래와 같이 정의하고 값(X)로 표시한다.‘()’ 인 괄호열의 값은 2이다.‘[]’ 인 괄호열의 값은 3이다.‘(X)’ 의 괄호값은 2×값(X) 으로 계.. 2024. 6. 3. 백준 10799: 쇠막대기(스택) 문제여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다.쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다.각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다.레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다.아래 그림은 위 조건을 만족하는 예를 보여준다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이저의 위치, 수직으로 그려진 점선 화살표는 레이저의 발사 방향이다.이러한 레이저와 쇠막대기의 배치는 다음과 같이 괄호를 이용하여 왼쪽부터 .. 2024. 6. 3. 백준 4949 : 균형잡힌 세상 (스택) 문제세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다.정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단하는 프로그램을 짜는 것이다.문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다.모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이뤄야 한다.모든 왼쪽 대괄호("[")는 오른쪽 대괄호("]")와만 짝을 이뤄야 한다.모든 오른쪽 괄호들은 자신과 짝을 이룰 수 있는 왼쪽 괄호가 존재한다.모든 괄호들의 짝은 1:1 매칭만 가능하다. 즉, 괄호 하나가 둘 이상의 괄호와 짝지어지지 않는다.짝을 이루는 두 괄호가 있을 때, 그 사이에 있는 문자열도 균.. 2024. 5. 31. 백준 9012 : 괄호 문제괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 여러분은 입력으로 주어진 괄호 문자열이.. 2024. 5. 31. 백준 10825 : 스택 문제정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.push X: 정수 X를 스택에 넣는 연산이다.pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 스택에 들어있는 정수의 개수를 출력한다.empty: 스택이 비어있으면 1, 아니면 0을 출력한다.top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.입력첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다... 2024. 5. 30. 백준 5430 : AC 문제선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다.함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다.함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 수를 버리는 함수이다.배열의 초기값과 수행할 함수가 주어졌을 때, 최종 결과를 구하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. T는 최대 100이다.각 테스트 케이스의 첫째 줄.. 2024. 5. 30. Chap 7 Wireless • 인프라스트럭쳐 방식기지국을 통해서 네트워크 서비스에 접속 • 애드 훅 방식기지국이 없이 각각의 호스트가 노드가 되어 자기 커버리지 안에 있는 다른 노드에게 데이터를 전송 교재에서는 주로 싱글 홉, 인프라스트럭쳐가 있는 네트워크를 다룬다 • 경로 손실거리가 멀어짐에 따라 신호는 제곱으로 약해진다 • 무선 네트워크 특징신호 세기 감소, 경로 손실, 간섭, 다중 경로 전파 등의 이유로 유선 링크보다 무선 링크에서 더 많은 비트 에러가 발생한다 • SNR, BERSNR - 신호세기, SNR이 커질수록 신호 추출이 쉬워진다BER - 비트오류율 특정 변조 기법 내에서 SNR이 높을수록 BER이 낮아진다 송신사가 출력세기를 높이면 SNR이 커지고, 수신 비트 오류는 낮아진다하지만 출력 세기를 높이면 송신하는데 .. 2024. 5. 29. 링크 레이어 스위치, 라우터, arp, mac 등의 키워드에 대해서 동작방식에 대해 정리해두기 62p스위치 configuration - 브로드캐스팅을 통해 세그먼트를 뿌리면서 목적지까지 전달하고목적지에서도 다시 브로드캐스팅으로 돌아오면서 연결 65p이더넷 - layer2 switch에서 작동 66p 스위치 라우터 차이 스위치 - layer 2포워딩, flooding을 통해서 보냄, mac 들어온 거 그대로 보내는 느낌라우터 - layer3, 라우팅, ip, 라우팅 알고리즘 • 75p학교에서 랩탑으로 구글 접속할때 일어나는 일 - 종합선물세트 달달 외워서 설명가능하게 1. 먼저 DHCP(udp로 연결) 에서 ip, 서브넷, default gateway router(1 hop 라우터) , dns 주소를 가져온다2. 이.. 2024. 5. 29. 모의테스트 : 나머지 한 점 (해쉬) 문제 설명직사각형을 만드는 데 필요한 4개의 점 중 3개의 좌표가 주어질 때, 나머지 한 점의 좌표를 구하려고 합니다. 점 3개의 좌표가 들어있는 배열 v가 매개변수로 주어질 때, 직사각형을 만드는 데 필요한 나머지 한 점의 좌표를 return 하도록 solution 함수를 완성해주세요. 단, 직사각형의 각 변은 x축, y축에 평행하며, 반드시 직사각형을 만들 수 있는 경우만 입력으로 주어집니다.제한사항v는 세 점의 좌표가 들어있는 2차원 배열입니다.v의 각 원소는 점의 좌표를 나타내며, 좌표는 [x축 좌표, y축 좌표] 순으로 주어집니다.좌표값은 1 이상 10억 이하의 자연수입니다.직사각형을 만드는 데 필요한 나머지 한 점의 좌표를 [x축 좌표, y축 좌표] 순으로 담아 return 해주세요.입출력 예.. 2024. 5. 23. 백준 15825 : Router 문제인터넷을 사용하기 위해서는 컴퓨터에 인터넷 회선을 연결하거나 Wi-Fi를 연결해야 한다. 이렇게 연결된 네트워크를 통해 컴퓨터에는 통신이 가능하다. 마음에 드는 노래나 동영상이 있는 곳에 파일을 전송해달라는 요청을 보내고 파일을 받는 식으로 말이다.우리가 보낸 요청은 어떻게 목적지까지 도달하는 것일까? 컴퓨터에서는 패킷이라고 하는 형태로 정보를 주고 받는다. 네트워크의 유저들은 1:1로 연결되어 있지 않으므로, 일반적으로 패킷은 라우터라는 장비를 여러 번 거친다. 그러면 라우터에서는 패킷을 다른 라우터로 보내거나, 만약 목적지와 직접적으로 연결되어 있다면 그곳으로 보낼 수도 있다. 즉, 택배 회사의 물류 센터와 비슷한 역할을 한다고 보면 된다.그림1. 네트워크에 존재하는 라우터들의 구성 예시라우터 내.. 2024. 5. 22. 백준 15961 : 회전 초밥 • 문제 문제회전 초밥 음식점에는 회전하는 벨트 위에 여러 가지 종류의 초밥이 접시에 담겨 놓여 있고, 손님은 이 중에서 자기가 좋아하는 초밥을 골라서 먹는다. 초밥의 종류를 번호로 표현할 때, 다음 그림은 회전 초밥 음식점의 벨트 상태의 예를 보여주고 있다. 벨트 위에는 같은 종류의 초밥이 둘 이상 있을 수 있다. 새로 문을 연 회전 초밥 음식점이 불경기로 영업이 어려워서, 다음과 같이 두 가지 행사를 통해서 매상을 올리고자 한다.원래 회전 초밥은 손님이 마음대로 초밥을 고르고, 먹은 초밥만큼 식대를 계산하지만, 벨트의 임의의 한 위치부터 k개의 접시를 연속해서 먹을 경우 할인된 정액 가격으로 제공한다. 각 고객에게 초밥의 종류 하나가 쓰인 쿠폰을 발행하고, 1번 행사에 참가할 경우 이 쿠폰에 적혀.. 2024. 5. 21. 백준 7795 : 먹을 것인가 먹힐 것인가 (이분탐색) 문제심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 수 있는 쌍의 개수는 7가지가 있다. 8-3, 8-6, 8-1, 7-3, 7-6, 7-1, 3-1.두 생명체 A와 B의 크기가 주어졌을 때, A의 크기가 B보다 큰 쌍이 몇 개나 있는지 구하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 A의 수 N과 B의 수 M이 주어진다. 둘째 줄에는 A의 크기가 모두 주어지며, 셋째 줄에는 B의 크기가 모두 주어진다. 크기는 양의 정수이다. (1 ≤ N, M ≤ 20,000.. 2024. 5. 20. 백준 2503 : 숫자야구 문제정보문화진흥원 정보 영재 동아리에서 동아리 활동을 하던 영수와 민혁이는 쉬는 시간을 틈타 숫자야구 게임을 하기로 했다.영수는 1에서 9까지의 서로 다른 숫자 세 개로 구성된 세 자리 수를 마음속으로 생각한다. (예: 324)민혁이는 1에서 9까지의 서로 다른 숫자 세 개로 구성된 세 자리 수를 영수에게 묻는다. (예: 123)민혁이가 말한 세 자리 수에 있는 숫자들 중 하나가 영수의 세 자리 수의 동일한 자리에 위치하면 스트라이크 한 번으로 센다. 숫자가 영수의 세 자리 수에 있긴 하나 다른 자리에 위치하면 볼 한 번으로 센다.예) 영수가 324를 갖고 있으면 429는 1 스트라이크 1 볼이다.241은 0 스트라이크 2 볼이다.924는 2 스트라이크 0 볼이다.영수는 민혁이가 말한 수가 몇 스트라이크.. 2024. 5. 20. 백준 1475: 방번호 문제다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)입력첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.출력첫째 줄에 필요한 세트의 개수를 출력한다.예제 입력 1 복사9999예제 출력 1 복사2예제 입력 2 복사122예제 출력 2 복사2예제 입력 3 복사12635예제 출력 3 복사1예제 입력 4 복사888888예제 출력 4 복사6 풀이.. 랄.. 2024. 5. 20. 백준 1406 : 에디터 (LinkedList, List Iterator) 문제한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다.이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 있다.이 편집기가 지원하는 명령어는 다음과 같다.LDBP $커서를 왼쪽으로 한 칸 옮김 (커서가 문장의 맨 앞이면 무시됨)커서를 오른쪽으로 한 칸 옮김 (커서가 문장의 맨 뒤이면 무시됨)커서 왼쪽에 있는 문자를 삭제함 (커서가 문장의 맨 앞이면 무시됨)삭제로.. 2024. 5. 19. Double Linked List • 더블 링크드리스트의 경우앞의 노드를 가리키는 prev 부분이 추가되엇다 insert와 remove 연산의 달라진 부분을 위주로 기억해두자public class MyDoubleLinkedList { private int size = 0; private Node firstNode = null; private Node lastNode = null; //노드 생성자에 앞의 노드를 가르키는 prev가 추가되었다 public static class Node { E item; Node prev; Node next; Node(Node prev, E element, Node next) { this.prev = prev; .. 2024. 5. 19. ArrayList • ArrayList 원소를 추가할때 배열에 남은 공간이 없으면?크기를 일정 배수로 늘린 배열 새로운 배열을 만들어 기존 배열의 원소를 옮긴다(자바에서 ArrayList는 1.5배, Vector는 2배 증가시킨다)중간 원소 삽입/삭제 연산은 기존 배열과 동일 == 느리다랜덤 액세스는 O(1)번 만에 가능하다 구현 코드import java.util.Arrays;public class MyArrayList { private static final int DEFAULT_CAPACITY = 10; private int size = 0; private Object[] data; //생성할떄 크기를 지정받으면 해당 크기만큼, 아니면 기본 크기인 10으로 생성한다 public MyArray.. 2024. 5. 18. Single Linked List • Single LinkedList node, next로 만 이루어진 구조 원소마다 node에 값을 가지고 다음 원소를 가리키는 link를 통해서 연결한다firstNode = null, lastNode = null로 초기화하고 시작한다순차적으로 접근할때 Iterator를 사용해 효율적으로 관리가 가능하다 addLast 연산 O(1)size가 0이면 firstNode를 newNode로그게 아니면 기존 lastNode.next를 newNode로 바꾸고 lastNode를 newNode로 변경 addFirst 연산 O(1)size가 0이면 lastNode를 newNode로그게 아니면 firstNode를 newNode로 하고 firstNode.next를 기존 firstNode로 get 연산 O(N)특정 위치에.. 2024. 5. 18. 리스트와 배열의 차이, 리스트 인터페이스 배열 : 동일한 타입의 원소를 선형적으로 관리하는 정적 데이터 구조 get - O(1)add 맨뒤에 추가 - O(1)insert 중간에 추가 - 넣으려는 인덱스부터 한칸씩 밀고 추가, o (N)remove - 삭제한 후 삭제한 인덱스 뒤를 한칸씩 당겨주느라 o (N) List - 동일한 타입의 원소를 선형적으로 관리하는 동적 데이터 구조크기 가변적, List 인터페이스 구현체에 따라 특성이 다르다 구현체 3개ArrayList - 인덱스를 통한 원소 접근 빠름, 삽입/삭제 느림LinkedList - 헤드부터 하나씩 타고 이동하기에 인덱스를 통한 접근 느림, 삽입 삭제는한 노드에서 자르고 포인터만 이어주면 되서 빠르다Vector - ArrayList와 비슷하고 thread - safe 해서 멀티 쓰레드 환경.. 2024. 5. 14. 주문, 주문 목록 만들기 (@ManyToOne, @OneToMany, N+1 문제) 주문을 하는 기능과 주문 목록을 저장하는 기능을 만들어보자 주문 id, 주문한 상품의 이름, 가격, 갯수와 주문한 사람의 정보를 저장했다정보는 @ManyToOne, @JoinColumn 해서 가져왔다@Entity@Getter@Setter@ToStringpublic class Sales { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column private String itemName; @Column private Integer price; @Column private Integer count; @ManyToOne @JoinColumn(name = "member_.. 2024. 5. 13. 검색 기능 - index 아이템 목록을 가져오는 기능을 만들어보자 폼에 serachText로 찾고 싶은 아이템 이름을 넘겨주고 검색 리포지토리에서는 해당 이름을 포함한 아이템들 리스트를 반환하게 해서List findAllByTitleContains(String title); 컨트롤러에서는 찾은걸 반환하게 했다@GetMapping("/search")String postSearch(@RequestParam String searchText, Model model){ List itemList = itemRepository.findAllByTitleContains(searchText); if (!itemList.isEmpty()){ model.addAttribute("items", itemList); .. 2024. 5. 8. 백준 1158 : 요세푸스 문제 문제요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다.N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오.입력첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)출력예제와 같이 요세푸스 순열을 출력한다.예제 입력 1 복사7 3예제 출력 1 복사 • 풀이 원형으로 돌면서 특정 횟수.. 2024. 5. 7. 백준 16472 : 고냥이 문제고양이는 너무 귀엽다. 사람들은 고양이를 너무 귀여워했고, 결국 고양이와 더욱 가까워지고 싶어 고양이와의 소통을 위한 고양이 말 번역기를 발명하기로 했다. 이 번역기는 사람의 언어를 고양이의 언어로, 고양이의 언어를 사람의 언어로 바꾸어 주는 희대의 발명품이 될 것이다.현재 고양이말 번역기의 베타버전이 나왔다. 그러나 이 베타버전은 완전 엉망진창이다. 베타버전의 번역기는 문자열을 주면 그 중에서 최대 N개의 종류의 알파벳을 가진 연속된 문자열밖에 인식하지 못한다. 굉장히 별로지만 그나마 이게 최선이라고 사람들은 생각했다. 그리고 문자열이 주어졌을 때 이 번역기가 인식할 수 있는 최대 문자열의 길이는 얼마인지가 궁금해졌다.고양이와 소통할 수 있도록 우리도 함께 노력해보자.입력첫째 줄에는 인식할 수 있는.. 2024. 5. 6. 댓글 기능 만들기 @GetMapping("/detail/{id}") 기존에 위의 api로 상세 페이지에 접속하게 했는데상세페이지에서 댓글이 작성하게 만들어보자 댓글은 로그인한 회원만 달 수 있고, 작성자 id, 작성자 닉네임, 댓글 내용, 본문 글작성자 id 속성을 가지게 만들었다 @Entity@Getter@Setter@ToStringpublic class Comment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column private String username; @Column private String content; @Column private Long parentId;} .. 2024. 5. 6. S3 버킷 스프링 어플리케이션에서 사용하기 s3에 이미지 저장해서 이미지 경로를 만들어주는 S3Service를 만들었다@Service@RequiredArgsConstructorpublic class S3Service { @Value("${spring.cloud.aws.s3.bucket}") private String bucket; private final S3Presigner s3Presigner; String createPreSignedUrl(String path) { var putObjectRequest = PutObjectRequest.builder() .bucket(bucket) .key(path) .build(); .. 2024. 5. 5. aws S3 이미지 업로드 s3 버킷을 만들어서 정책 편집 1번 정책은 누구나 읽기 가능2번 정책은 수정 삭제는 나만 가능하게 했다{ "Version": "2012-10-17", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::hoshi03spring1/*" }, { "Sid": "2", "Effect": "Allow", "Principal": { .. 2024. 5. 5. 페이지 나누기 (pagination) 글이 500만개가 있을때 한번에 다 보여줄 수는 없다 Repository에 Pageable을 선언하고Page findPageBy(Pageable page); /list/page/1 형태로 들어오면 페이지를 가져오는 코드를 작성한다items에 담아둔 page는 html에서 반복문을 돌면서 해당하는 페이지의 아이템들을 가져올 수 있다PageRequest는 0부터 시작해서 n개를 가져오니 -1을 해줬다@GetMapping("/list/page/{id}")String getListPage(Model model, @PathVariable Integer id){ //n번째 페이지에서 m개 가져온다 Page page = itemRepository.findPageBy(PageRequest.of(id-1, 5.. 2024. 5. 5. DTO 만들어서 데이터 보내기 특정 유저의 데이터를 보내고 싶을때 리포지토리에서 가져온 걸 그대로 보내면 비밀번호까지 보내버린다DTO를 만들어서 보내고 싶은 데이터만 보내자 • dto를 사용하면 데이터 타입체크가 쉽고 재사용성이 올라간다보내고 싶은 데이터가 다른 api가 있을때 데이터에 따른 생성자를 만들거나 하는 방식으로 유연하게 보내줄 수 있다 id와 닉네임만 전달할 dto를 만든다class MemberDto { public String username; public String displayname; MemberDto(String username, String displayname){ this.username = username; this.displayname = displaynam.. 2024. 5. 5. 스프링 시큐리티, 회원가입 기능 만들기, 외부 클래스 DI • 스프링 시큐리티 gradle에 시큐리티를 추가해서 설치한다implementation 'org.springframework.boot:spring-boot-starter-security'implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.1.RELEASE' 스프링 시큐리티를 관리할 클래스를 생성한다//필터 체인 - 유저의 요청과 서버 응답 사이에 자동실행하고싶은 코드를 담는 것@Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception { //csrf - 다른 사이트에 폼 만들어서 내 사이트로 요청을 보내는식으로 공격할수 있음 //c.. 2024. 5. 4. 이전 1 ··· 3 4 5 6 7 8 9 ··· 16 다음 more