intellij 디버깅 break point에 우클릭하면 조건으로 break를 걸 수가 있다. (productId가 2L일때만 위 point에서 break가 되도록 지정) 특히나 for, while등의 반복적인 행위속에, 특정값이 들어올때만 break를 하고 싶은
public String\[] split(String regex);\-> 문자열을 regex(정규식)에 맞춰서 분리한다.public String\[] split(String regex, int limit);\-> limit 만큼 문자열을 자름split (String r
JAVA설치 참고https://jhnyang.tistory.com/224JDK11 버전부터는 JRE가 안에 포함되어있다. JRE가 따로 제공되지 않는다. 자바에 jlink가 생겨서 JRE를 별도로 설치하기보단 개발자들이 어플리케이션에 링크를 걸어서 실행환경을
HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 클라이언트-서버 프로토콜이란 (보통 웹브라우저인) 수신자 측에 의해 요청이 초기화되는
TCP 3-way Handshake 란? TCP는 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 three-way handshake를 사용한다. TCP 3 Way Handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터
선형 이하 시간 알고리즘 어던 문제건 입력된 자료를 모두 한 번 훝어보는 데에는 입력의 크기에 비례하는 시간, 즉 선형 시간이 걸린다. 그럼 선형 시간보다 빠르게 동작하는 알고리즘들은 입력된 자료를 다 보지도 않는단 말이다. 입력으로 주어진 자료에 대해 우리가 미리 알
교착상태 교착상태(Dead Lock)은 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미한다. 아래 그림과 같이 자동차(프로세스)들이 현재 위치한 길(
세마포어와 뮤텍스 오늘은 세마포어와 뮤텍스의 개념과 차이점에 대해 알아보겠습니다. 잘못된 내용이 있으면 댓글로 피드백 주시면 정말 감사하겠습니다. 정의 세마포어와 뮤텍스는 "여러 프로세스나 쓰레드가 공유 자원에 접근하는 것을 제어하기 위한 방법" 으로 정의할 수 있습
동기(synchronous : 동시에 일어나는) 동기는 말 그대로 동시에 일어난다는 뜻입니다. 요청과 그 결과가 동시에 일어난다는 약속인데요. 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 합니다. 요청과 결과가 한 자리에서 동시에 일어
쓰레드 (Thread) 프로그램 내부의 흐름, 맥 하나의 프로그램은 하나의 맥이 있고 이러한 맥을 쓰레드라고 한다. 멀티쓰레드, 다중쓰레드(Multithreads) 다중 쓰레드(Multithreads) 한 프로그램에 2개 이상의 맥 맥이 빠른 시간 간격으
CPU 스케줄링 개요 프로세스(Process)가 구동하려면 다양한 시스템 자원이 필요하다. 대표적으로 CPU(중앙처리장치)와 입출력장치가 있는데, 최고의 성능을 내기 위해 자원을 어떤 프로세스에 얼마나 할당하는지 정책을 만드는 것을 CPU스케줄링이라고 한다. CPU
메모리의 스택 영역은 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역이다.스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다.함수가 호출되면 스택에는 함수의 매개변수, 호출이 끝난 뒤 돌아갈 반환 주소값, 함수에서 선언된 지역 변수
질문의 의도부터 파악하자프로그램, 프로세스, 스레드에 대한 기본 개념을 알고 있는지 물어보기 위해운영체제가 시스템 자원을 어떤 방식으로 할당하고 프로그램은 이 자원을 어떤 방식으로 활용하여 작동하는지에 대해 알고 있는지 물어보기 위해실행 가능한 명령어의 집합어떤 작업을
개관 어떤 작업이 주어졌을 때 컴퓨터가 이 작업을 해결하는 방법을 가리켜 알고리즘(algorithm)이라고 한다. 주어진 문제를 해결하는 한 가지 방법을 명료하게 써 놓은 것을 알고리즘이라고 한다. 주관적이거나 모호한 것은 알고리즘이라고 할 수 없다. 예를 들어 서
산술 오버플로 컴퓨터의 모든 변수에는 담을 수 있는 크기가 제한되어 있다. 산술 오버플로는 어떤 식의 계산 값이 반환되는 자료형의 표현 가능한 범위를 벗어나는 경우를 말한다. 산술 오버플로는 프로그래밍을 하면서 저지를 수 있는 수많은 실수 중에서도 가장 흔한 실수라고
디버깅과 테스팅 디버깅에 관하여 프로그래밍 대회에서 디버거는 유용성이 제한된다. 프로그래밍 대회에서 작성하는 소스 코드는 대개 길지 않기 때문에, 소스를 한 줄씩 읽어 내려가면서 검증하는 것이 가능하다. 경우에 따라 다르지만 눈으로 디버깅하는 쪽이 훨씬 빠른 경우가
좋은 코드를 짜기 위한 원칙 간결한 코드를 작성하기 코드가 짧으면 짧을수록 오타나 단순한 버그가 생길 우려가 줄어들고, 디버깅도 쉬워진다. 프로그래밍 대회에서만 전역 변수의 광범위한 사용 전역 변수를 많이 사용하면 프로그램의 흐름을 파악하기 어려워지기 때문에 대개 사
칠판에 문제를 적는다.골똘히 생각한다칠판에 답안을 적는다문제 해결 과정을 단계별로 나누었다.(아주 중요하다)문제를 적어보는 단계가 있다. 문제를 읽고 이해한 뒤 자신의 언어를 이용해 재정의 해야 하기 때문에 이 단계는 매우 중요하다.문제를 이해한다.어떻게 풀지 계획을
클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 한다. 인터페이스는 추상 메서드와 상수로만 이루어져 있다. 구현된 코드가 없기 때문에 인스턴스를 생성할 수도 없다.인터페이스는 클라이언트 프로그램에 어떤 메서드를 제공하는지 미리 알려주는 명세(speci
프로그램을 쉽게 개발하기 위해 구체적인 기능 설계와 구현을 미리 만들어 놓은 도구를 말한다.객체 지향 프로그램을 어떻게 구현해야 좀 더 유연하고 재활용성이 높은 프로그램을 만들 수 있는지를 정리한 내용프로그램 특성에 따른 설계 유형을 이론화한 내용이며, 특정 알고리즘이