분류 전체보기 141

[DFS] 백준 2468 - 안전 영역 (자바)

내가 까먹을까봐 기록함. 문제 : https://www.acmicpc.net/problem/2468 import java.util.*; import java.io.*; public class Main { static int N; static int[][] arr; static int max; static int maxHeight; static boolean[][] check; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; N = Integer.parseInt(br.readLine..

[이분 탐색] 백준 10815 - 숫자 카드 (자바)

이분 탐색 기초 내가 보려고 씀 문제 : https://www.acmicpc.net/problem/10815 이분 탐색 문제지만 사실상 이분 탐색 처음? 공부하는 거라 걍 내 방식대로 풀어봄. ArrayList에 담아서 contains로 판단. 결과는 당연히 시간 초과. [기존 코드 (ArrayList - 시간 초과)] import java.util.*; import java.io.*; public class Main { static int N, M; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTok..

[Database] 인덱스 (Index)

들어가기 전... 인덱스(Index)란 무엇인가? DBMS도 데이터베이스 테이블의 모든 데이터를 검색해서 원하는 결과를 가져오려면 시간이 오래 걸린다. 그래서 칼럼의 값과 해당 레코드가 저장된 주소를 키와 값의 쌍으로 인덱스를 만들어 두는 것이다. DBMS의 인덱스는 항상 정렬된 상태를 유지하기 때문에 원하는 값을 탐색하는데는 빠르지만 새로운 값을 추가하거나 삭제, 수정하는 경우에는 쿼리문 실행 속도가 느려진다. (뒤에 나옴) → 결론적으로 DBMS 에서 인덱스는 데이터의 저장 성능을 희생하고 그 대신 데이터의 읽기 속도를 높이는 기능이다. 그래서 인덱스의 목적 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조. 즉, 데이터베이스의 테이블에 대한 검색 ..

CS/Database 2023.01.10

[Database] 이상 현상 (Anomaly)

좋은 관계형 데이터베이스를 설계하는 목적 중 하나가 정보의 이상 현상 (Anomaly)이 생기지 않도록 고려해 설계하는 것이다. 이상 현상은 테이블을 설계할 때, 잘못 설계하여 데이터를 삽입, 삭제, 수정할 때 논리적으로 생기는 오류를 말한다. 💡 정규화를 해야하는 이유는 잘못된 테이블 설계로 인해 Anomaly(이상 현상)이 나타나기 때문이다. 이상 현상은 갱신 이상 (Update Anomaly) 삽입 이상 (Insertion Anomaly) 삭제 이상 (Deletion Anomaly) 으로 구성된다. 학번 이름 나이 성별 강의코드 강의명 전화번호 1011 이태호 23 남 AC1 데이터베이스 개론 010-2627-8123 1012 강민정 20 여 AC2 운영체제 010-4665-1941 1013 김현수..

CS/Database 2023.01.10

[자료구조] 스택(Stack) & 큐(Queue)

스택(Stack) 선형 자료구조의 일종으로, 가장 나중에 들어온 것이 가장 먼저 나온다. LIFO (Last In First Out, 후입선출) ※ 스택(stack)이란, 쌓아 올린다는 것을 의미한다. 따라서 스택 자료구조라는 것을 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. 스택의 특징 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있고, top으로 정한 곳을 통해서만 접근할 수 있다. 즉, 스택의 경우 자료의 삽입과 삭제는 한 곳(top)에서만 이루어지게 된다. 스택은 시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다는 구조적 특징을 가졌다. 만약 스택이 비어있을 때 자료를 꺼내려고 시도를 하면 스택 언더플로우(Stack Underflow)가 ..

CS/자료구조 2023.01.09

[SpringBoot 에러] (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

실습을 하다가 만나게 된 에러... JSON으로 데이터를 생성하려 Post로 전송을 했다. { "title": "제목입니다.", "tutor": "음치킨" } 하지만 500 에러가 나고, 콘솔을 확인해 보니 제일 첫 번째 줄에 났던 에러 문장 맨 뒤에 (에러가 날 때는 제일 처음에 난 에러부터 해결하자. 그러면 뒤에 에러 줄줄이 해결될 가능성 높음) (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) 이런 에러가 났다. 구글링해보니 "파라미터가 있는 constructor 가 있을 때 어떻게 Json 모델을 생성해야되는지 몰라서 발생하..

에러 2023.01.08

Dto, Controller, Service

출처 : 이동욱 개발자님 [스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 내가 보려고 쓰는 Spring 프로젝트 구조 모든 응답 Dto는 DTO 패키지에 추가 등록 / 수정 / 조회 API 만들기 API 를 만들기 위해 총 3개의 클래스가 필요하다. Request 데이터를 받을 Dto API 요청을 받을 Controller 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service 🚨 오해 Servuce에서 비즈니스 로직을 처리해야 한다. 하지만, 전혀 그렇지 않다. 그럼? 💡 Service는 트랜잭션, 도메인 간 순서 보장의 역할만 한다. 그럼 비즈니스 로직은 누가 처리하나? 간단히 각 영역을 소개하자면 다음과 같다. Web Layer 흔히 사용하는 컨트롤러(@Controller)와 JSP / Fr..

Spring/그 외 2023.01.07

domain, JpaRepository

출처 : 이동욱 개발자님 [스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 내가 보려고 쓰는 Spring 프로젝트 구조 들어가기 전... 내가 보려고 쓰는 프로젝트 구조 스프링 부트에서 JPA로 데이터베이스를 다뤄보자 왜 JPA를 쓸까? 왜 ❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓ 국비학원에서 가르친 MyBatis... 이것은 곧 SQL 매퍼(mapper)이다. 하지만 이것은 실제로 개발하는 시간보다 SQL을 다루는 시간이 더 많았다. 분명 "객체지향 프로그래밍을 배웠는데, 왜 객체지향 프로그래밍을 못할까?" → 객체 모델링보다는 테이블 모델링에만 집중하고, 객체를 단순히 테이블에 맞추어 데이터 전달 역할만 했다. → 이것은 곧 기형적인 형태이다. 어떻게 하면 관계형 데이터베이스를 이용하는 프..

Spring/그 외 2023.01.07

[자료구조] Array vs ArrayList vs LinkedList

세 자료구조를 한 문장으로 정의하면 아래와 같이 말할 수 있다. Array는 index로 빠르게 값을 찾는 것이 가능하다. ArrayList는 데이터를 찾는데 빠르지만, 삽입 및 삭제가 느리다. LinkedList는 데이터의 삽입 및 삭제가 빠르다. ArrayList vs LinkedList 차이 ArrayList는 데이터들이 순서대로 늘어선 배열의 형식을 취하고 있지만, LinkedList는 자료의 주소값으로 서로 연결된 형식을 가지고 있다. 이러한 구조에 의해 둘은 각각의 장단점을 가지고 있다. ArrayList 원하는 데이터에 무작위로 접근할 수 있다. 리스트의 크기가 제한되어 있으며, 리스트의 크기를 재조정하는 것은 많은 연산이 필요하다. 데이터의 추가 / 삭제를 위해서는 임시 배열을 생성하여 복..

CS/자료구조 2023.01.07

[Network] OSI 7 계층 & TCP/IP 4 계층

OSI 7 계층이란? 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 7 계층은 왜 나눌까? 통신이 일어나는 과정을 단계별로 알 수 있고, 네트워크 관리자는 어떤 문제의 원인이 어디에 있는지 범위를 좁힐 수 있다. 특정한 곳에 이상이 생기면 다른 단계를 건들이지 않고도 그 단계만 수정할 수 있기 때문 7계층 – 응용 계층(Application) HTTP, FTP, DNS 등 디핑 소스 비유를 확장하면, 응용 계층은 가장 위에 있다. 사용자에게 보이는 부분이다. OSI 모형에서는 "최종 사용자에게 가장 가까운" 계층이다. 7계층에서 작동하는 응용프로그램은 사용자와 직접적으로 상호작용한다. 최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다. 사용자 인터페이스, 전..

CS/Network 2023.01.07