본문 바로가기

전체 글28

Process/Thread 정리, 차이점 프로세스(Process) 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU 의 할당을 받을 수 있는 것을 말한다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며 이것들을 총칭하여 프로세스라고 한다. 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받음 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다. Code : 코드 자체를 구성하는 메모리 영역(프로그램 명령) Data : 전역변수.. 2021. 12. 4.
HTTP 메서드 GET vs POST 둘 다 HTTP 프로토콜을 이용해 서버에 데이터를 전달하는 방식이다. GET - 서버로부터 정보를 조회하기 위해 설계된 메소드 - 요청을 전송할 때 필요한 데이터를 HTTP Request Message의 Header 부분의 URL에 담아 전송 - URL의 끝에 ?와 함께 Key=Value 형태의 쌍을 이루는 요청 파라미터를 붙임 - 요청 정보가 여러 개일 경우 '&'로 구분 ex) www.urladdress.xyz?name1=value1&name2=value2 - 이를 쿼리스트링이라고 함 특징 - URL에 쿼리스트링을 붙이는 방식이기 때문에 길이 제한이 있어 대용량 데이터 전송이 어렵다. 한 번 요청 시 전송 데이터(주솟값 + 파라미터)의 양은 255자로 제한된다.(HTTP/1.1은 2048자) - 요청.. 2021. 11. 30.
[백준] 5430 AC - 자바 Java https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 풀이 아무 생각 없이 풀면 시간초과가 나는 문제다.. reverse함수를 썼다가 처음에 틀렸다. 배열을 뒤집을 때 진짜 뒤집지 말고 덱 자료구조와 어디가 앞인지 기록하며 풀이해야한다. 숫자 배열을 입력받을 때 [1,2,3] 이런 식으로 입력이 들어오므로 substring 함수를 사용해 [ ] 문자를 잘라내고 split(',') 함수를 사용해 숫자를 가져온다. arrStr = br.readLine(); arrStr = arrStr.substring(1, .. 2021. 11. 29.
[백준] 14891 톱니바퀴 - Java https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 풀이 빡구현문제이다. 너무 힘들다.. 우선 시계, 반시계 방향으로 회전시키는 함수를 만든다. 1. 이차원 배열 lists[4][8]에 모든 톱니바퀴의 정보를 저장한다. 2. 회전하는 톱니바퀴의 번호와 방향을 입력받는다. 3. 시작 톱니바퀴의 양 끝 인덱스(다른 톱니와 맞닿아 있는 곳) 2, 6 인덱스의 정보를 가져온다. 4. 그 후 방향을 확인 후 현재 톱니바퀴를 회전 시킨다. 5. 시작 톱.. 2021. 11. 28.
HTTP & HTTPS(SSL, 하이브리드 암호화) HTTP(HyperText Transfer Protocol) 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 TCP/IP 기반으로 서버와 클라이언트 간의 요청과 응답을 전송한다. 비연결 지향 브라우저를 통해 사용자의 요청으로 서버와 접속하여 요청에 대한 응답의 데이터를 전송후, 연결을 종료한다. 간단하기 때문에 자원이 적게드는 장점이 있다. 하지만, 연결이 지속적이지 않기 때문에 사용자와 연결 종료후 추가적인 요청시 어떤 사용자의 요청인지 모른다는 점이 존재한다. 즉, 여러 사용자가 요청할 시 각각의 사용자 요청을 구분할 수 없어서 제대로 된 응답 데이터를 전송할 수 없다는 단점이 있다. 해결 방법으로는 쿠키, 세션, 히든 폼 필드 등이 있다. 단방향성 사용자의 요청 한 개에 대해.. 2021. 11. 28.
Quartz Scheduler 용어 정리 / 메타테이블 용도 Quartz란? Job Scheduling 라이브러리 자바로 개발되어 모든 자바 프로그램에서 사용 가능 간단한 interval형식이나 Cron 표현식 스케줄링 지원 (ex. 매주 금요일 새벽 1시, 1시간 마다 한번씩) 장점 DB 기반으로 스케줄러 간 클러스터링 기능 제공 시스템 Fail-over / Random 방식의 로드 분산처리 지원 In-memory Job scheduler 제공 여러 기본 플러그인 제공 ShutdownHookPlugin – JVM 종료 이벤트 캐치 LoggingJobHistoryPlugin – Job 실행 로그 남기기 단점 Random 방식 클러스터링 기능이라 완벽한 로드 분산 x 스케줄링 실행에 대한 히스토리 보관 x 용어 정리 Job Quartz API에서 excute 메서드.. 2021. 11. 25.