분류 전체보기 41

Blocking-NonBlocking-Synchronous-Asynchronous

동기와 비동기 블럭과 논블럭에 대해 알아보자. Blocking VS Non-blocking 블럭/논블럭은 간단히 말해서 호출된 함수가 호출한 함수에게 제어권을 건네주는 유무의 차이라고 볼 수 있다. 함수 A, B가 있고, A 안에서 B를 호출했다고 가정해보자. 이때 호출한 함수는 A고, 호출된 함수는 B가 된다. 현재 B가 호출되면서 B는 자신의 일을 진행해야 한다. (제어권이 B에게 주어진 상황) Blocking : 함수 B는 내 할 일을 다 마칠 때까지 제어권을 가지고 있는다. A는 B가 다 마칠 때까지 기다려야 한다. Non-blocking : 함수 B는 할 일을 마치지 않았어도 A에게 제어권을 바로 넘겨준다. A는 B를 기다리면서도 다른 일을 진행할 수 있다. 즉, 호출된 함수에서 일을 시작할 때..

CS/네트워크 2022.10.28

백준 9079

https://www.acmicpc.net/problem/9079 9079번: 동전 게임 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 세 줄로 이루어지며, 한 줄에 세 개의 동전모양이 주어지는데, 각각의 동전 표시 사이에는 하나의 공백이 www.acmicpc.net 문제 처음에 BFS가 아닌 DFS로 접근했다. 깊이 우선 탐색이기 때문에 1번 행 뒤집는 경우 => 2번 행 뒤집는 경우 => ....=> 오른쪽 대각선 뒤집는 경우 이렇게 깊이 우선으로 탐색하고 뒤집은 횟수(cnt)를 구한다. 하지만 문제점은 깊이 우선 탐색이기 때문에 이렇게 탐색하면 최소 뒤집은 횟수를 저장할 수 없다. 예를 들어 자식노드까지 탐색을 한 후 다시 루트노드로 돌아와 다음 탐..

OSI 7계층 VS TCP/IP 4계층

OSI 7계층 모델과 TCP/IP 4계층 모델 계층 모델은 네트워크에서 사용되는 통신 프로토콜의 집합으로 계층들은 프로토콜의 네트워킹 범위에 따라 4개(or 7개)의 추상화 계층으로 구성된다. 이 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계되었다. ex) TCP를 UDP로 변경했다고 해서 인터넷 웹 브라우저를 다시 설치해야 하는 것은 아니듯 유연한 설계 * 프로토콜: 통신을 하기 위한 규칙 * 네트워킹: 기기와 기기가 망을 구성하여 데이터를 주고받는 것 이런 네트워크 통신 모델은 왜 나오게 됐을까? 예전에 표준화가 되어 있지 않아 같은 회사의 컴퓨터(제품)끼리만 통신이 가능하고 케이블을 연결하는 커넥터도 회사별로 달라 곤란했다. 그래서 공통으로 사용할 수 있는 표준 규격을 정..

CS/네트워크 2022.10.27

Eclipse VS STS VS IntelliJ

IDE란 통합 개발 환경 , 개발을 하면서 사용되는 도구들의 집합이다. 도구: 개발하는데 필요한 편집기, 터미널, git연동 등 Java에서 IDE 종류 Java를 이용하는 경우 가장 많이 사용하는 도구는 STS, Eclipse, Intellij이다. STS STS는 Spring Framework 를 지원하는 IDE 개발 툴중 하나로 Java 기반의 웹 서비스 어플리케이션 구축을 쉽게 할 수 있도록 도와주는 개발 도구이다. Eclipse Java를 기반으로 한 통합 개발 환경, 자바를 비롯한 다양한 언어도 지원하는 프로그래밍 통합 개발 환경이다. Intellij IntelliJ는 JetBrains사에서 제작한 상용 자바 통합 개발 환경이다. 처음에 코드로 배우는 스프링 웹 프로젝트를 클론 코딩하며 Spr..

개발일지/Spring 2022.10.27

백준 1912

https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 사고 흐름 투 포인터 알고리즘으로 특정한 합(최대합)을 가지는 부분 연속 수열 찾기를 하는 것인가 생각했지만 이 알고리즘은 음수 데이터가 포함되어 있는 경우에는 해결할 수 없다. 일단 완전 탐색으로 접근하면 아이디어가 생각날 것 같아 어떻게 완탐으로 해결할 수 있을 지 생각했다. 완탐으로 접근한다면 연속합이 나올 수 있는 경우는 한 칸씩 더할 경우 (arr[0]), (arr[1])..., 두 칸 씩 더할 경..

백준 19598

https://www.acmicpc.net/problem/19598 19598번: 최소 회의실 개수 서준이는 아빠로부터 N개의 회의를 모두 진행할 수 있는 최소 회의실 개수를 구하라는 미션을 받았다. 각 회의는 시작 시간과 끝나는 시간이 주어지고 한 회의실에서 동시에 두 개 이상의 회의 www.acmicpc.net 아이디어 그리디는 '현재 상황에서 지금 당장 좋은 것만 고르는 방법'이다. 현재 회의실에 있는 회의 중 회의 끝나는 시간이 가장 작은 시간과 아직 회의실에 들어가지 않은 회의 중 회의 시작 시간이 가장 작은 시간을 비교해 해결하는 그리디 문제이다. (현재 가장 좋은 것을 골라 해결) 이 문제의 핵심은 최소 회의실의 개수이다. 최소 회의실의 개수를 구하려면 한 회의실에 최대한 많은 회의가 들어가..

동기화

https://daily-studygo.tistory.com/12 프로세스와 스레드 프로그램과 프로세스 프로그램은 특정 작업을 실행할 수 있는 명령어 모음으로 디스크에 저장된 파일이다. 프로세스는 디스크로부터 메모리에 적재되어 실행되고 있는 프로그램으로 CPU의 할당 daily-studygo.tistory.com 이전에 위의 블로그에서 멀티 스레딩의 경우 스레드가 공유 자원에 동시에 접근했을 때 결과가 달라져 문제가 발생할 수 있다고 했다. 문제가 발생하지 않게 멀티스레드 환경에서 여러 스레드가 동시에 공유 자원에 접근할 때, 의도한 대로 동작(Thread-Safe)하게 해줘야 한다. Thead-Safe가 가능하게 하는 동기화 기법에 대해 알아보자. 동기화를 설명하기 위해 알아야 할 개념에 대해 짚고 넘..

CS/운영체제 2022.10.25

데드락

https://daily-studygo.tistory.com/18 동기화 https://daily-studygo.tistory.com/12 프로세스와 스레드 프로그램과 프로세스 프로그램은 특정 작업을 실행할 수 있는 명령어 모음으로 디스크에 저장된 파일이다. 프로세스는 디스크로부터 메모리에 daily-studygo.tistory.com 데드락(DeadLock, 교착 상태) 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 무한히 다음 자원을 기다리게 되는 상태를 말한다. 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. (마치, 외나무 다리의 양 끝에서 서로가 비켜주기를 기다리고만 있는 것과 같다.) 데드락이 일어나는 경우 프로세스1과 2가 자원1..

CS/운영체제 2022.10.25

백준 16508

https://www.acmicpc.net/problem/16508 16508번: 전공책 곧 졸업을 앞둔 민호는 대학교 생활 동안 구매만 해놓고 한 번도 펴보지 않은 전공책에 먼지가 쌓여 있는 것을 보고는, 이 책들을 어떻게 처리해야 할지 고민 중이다. 열심히 고민한 끝에 민호는 www.acmicpc.net 문제 핵심 내용 하나의 책에서 한 번에 여러 개 오릴 수 있다. 여러 개 오려도 가격은 그래도 책 한 권의 가격이다. 민호가 만들고자 하는 단어(T)를 만들 수 있는 가장 적은 가격의 합을 출력한다. 문제 책을 선택할 수 있는 조합이 아닌 단어의 조합으로 해결하는 문제 풀이법을 떠올렸고 아무리 생각해도 수행시간이 오래 걸려서 다른 풀이법을 고민하느라 문제 푸는 시간이 오래 걸렸다. ex) T = ac..

정규화

정규형 원칙 같은 의미를 표현하는 릴레이션이지만 좀 더 좋은 구조로 만들어야 한다. 자료의 중복성은 감소해야 한다. 중복된 데이터를 만들지 않으면 DB 저장 용량을 효율적으로 관리할 수 있다. 독립적인 관계는 별개의 릴레이션으로 표현해야 한다. 각각의 릴레이션은 독립적인 표현이 가능해야 하는 것을 말한다. 정규화 정규화 과정은 릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나서 이를 해결하거나, 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정이다. 정규화 과정은 정규형 원칙을 기반으로 정규형을 만들어가는 과정이다. 정규화된 정도에 따라 1NF(Normal Form), 2NF, 3NF, BCNF가 있다. 데이터베이스 이상현상 회원이 한 개의 등급을 가져야 하는..