본문 바로가기

분류 전체보기240

[Java] Primitive type vs Reference type 기본형(Primitive type) 총 8가지의 기본형 타입(Primitive type)을 미리 정의하여 제공한다. 비객체, Null이 존재하지 않음 실제 값을 저장하는 공간으로 스택 메모리에 저장 문법상 에러 → 컴파일 에러 발생 타입 할당되는 메모리 크기 기본값 데이터의 표현 범위 논리형 boolean 1 byte false true, false 정수형 byte 1 byte 0 -128 ~ 127 short 2 byte 0 -32,768 ~ 32,767 int(기본) 4 byte 0 -2,147,483,648 ~ 2,147,483,647 long 8 byte 0L -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 실수형 float 4 byte 0.0F .. 2021. 4. 18.
[DB] Connection Pool 개념 DBCP(Database Connection Pool)은 다수의 HTTP 요청에 대한 Thread를 효율적으로 처리할 수 있는 방식을 말한다. (WAS와 DB 서버간 이슈) Connection Pool을 사용하지 않고 WAS에서 DB서버에 접근을 시작하고 데이터를 가져오는 단계 DB 서버 접속을 위해 JDBC 드라이버를 로드한다. DB 접속 정보와 DriverManager.getConnection() Method를 통해 DB Connection 객체를 얻는다. Connection 객체로 부터 쿼리를 수행하기 위한 PreparedStatement 객체를 받는다. executeQuery를 수행하여 그 결과로 ResultSet 객체를 받아서 데이터를 처리한다. 처리가 완료되면 처리에 사용된 리소스들을 c.. 2021. 4. 18.
[Web] CORS(Cross-Origin Resource Sharing) 개념 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다. 보안 상의 이유로, 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청을 제한한다. 출처란? 도메인(호스트), 프로토콜, 포트가 다를 때 출처가 다르다고 말하며, 이때 교차 출처 HTTP 요청을 실행한다. 웹 애플리케이션은 자신의 출처와 동일한 리소스만 불러올 수 있으며, 다른 출처의 리소스를 불러오려면 그 출처에서 올바른 CORS 헤더를 포함한 응답을 반환해야 한다. 해결(허용) 방법 XMLHttpRequest와 Fetch API는 동일 출처.. 2021. 4. 18.
[Codility] Lesson 4 Counting Elements : MaxCounters 문제 MaxCounters coding task - Learn to Code - Codility Calculate the values of counters after applying all alternating operations: increase counter by 1; set value of all counters to current maximum. app.codility.com 결과 Test results - Codility You are given N counters, initially set to 0, and you have two possible operations on them: increase(X) − counter X is increased by 1, max counter − all co.. 2021. 4. 15.
[DB] 정규화 이상 현상(anomaly) 테이블내의 데이터 중복성에 의해서 발생되는 데이터 불일치 현상. = 애트리뷰트들 간에 존재하는 여러 종속관계를 하나의 릴레이션에 표현했기 때문에 나타나는 데이터 불일치 현상 갱신 이상, 삽입 이상, 삭제 이상으로 구성된다. 갱신 이상 (Modification Anomaly) : 반복된 데이터 중에 일부를 갱신 할 시 데이터의 불일치가 발생한다. 삽입 이상 (Insertion Anomaly) : 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능하다. 삭제 이상 (Deletion Anomaly) : 필요한 정보를 함께 삭제하지 않고서는 어떤 정보를 삭제하는 것이 불가능하다. 이상 현상은 종속관계를 분석하여 여러 개의 릴레이션으로 분해하는 정규화를 통해 방지할.. 2021. 4. 11.
레드-블랙 트리 개념 각 노드에 한 비트의 color 필드가 추가로 있으며 아래 레드-블랙 특성을 모두 만족하는 이진 탐색 트리를 말한다. 레드-블랙 특성 각 노드 color는 '레드'이거나 '블랙'이다. 루트와 외부 노드(NIL)의 color는 블랙이다. 레드 노드의 부모 노드는 반드시 블랙이다. 임의의 노드 x에서 후손 리프까지 가는 경로에 있는 블랙 노드의 개수는 같다. 이것을 black-height(x)라고 한다. 트리의 높이 O(log n) n개의 키를 가진 레드-블랙 트리 T의 높이를 h라고 하면 h ≤ 2log(n+1) 이다. 높이차는 최대 2배 이상 커지지 않는다. 연산 O(log n) 탐색 최소값 찾기 최대값 찾기 선행자 후행자 삽입, 삭제 연산 알고리즘에서 수행하는 rotation은 최대 2회이다. 참.. 2021. 4. 11.
[DB] N + 1 문제 개념 ORM에서 성능 이슈가 발생하면 가장 흔한 원인으로 N+1 Problem이 언급된다. N+1 Problem은 쿼리 1번으로 N건의 데이터를 가져왔는데 원하는 데이터를 얻기 위해 이 N건의 데이터를 데이터 수 만큼 반복해서 2차적으로 쿼리를 수행하는 문제입니다. ORM : (Object Relational Mapping) 객체-관계 매핑 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 객체 모델과 관계형 모델 간에 불일치가 존재한다. ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. Persistence API라고도 할 수 있다. JPA : (Java.. 2021. 4. 11.
문자 인코딩 | ASCII, Unicode, UTF-8 인코딩 사용자가 입력한 문자나 기호를 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말한다. 문자 → 숫자 : 인코딩 숫자 → 문자 : 디코딩 예를 들어, 메모장에 A라고 친 다음 저장하면 실제로 하드디스크에 기록되는 정보는 65라는 숫자값. A -> 65라고 저장하도록 만들어놨기 때문에 아스키코드 가장 처음 만들어진 인코딩이 ASCII코드. 숫자와 문자를 매칭시키는 국제적 규칙. 패리티 비트를 제외하고, 128개의 문자조합을 제공하는 7비트 부호 (패리티 비트는 데이터의 에러를 탐지하기 위해 사용한다. 일곱자리의 이진수에서 '1'이 홀수개라면 끝에 1을, '1'이 짝수개라면 끝에 0을 덧붙인다. 아주 정밀하진 않지만 패리티 비트를 이용해 어느 정도의 에러를 탐지할 수 있다.) 문제점 아스키코드만으로는 영.. 2021. 4. 10.
[Web] HTTP, HTTPS, HTTP 버전 HTTP Hyper Text Transfer Protocol의 약어로 WWW(World Wide Web)에 내재된 프로토콜이다. 인터넷에서 자원(파일, 이미지, 비디오)을 교환하는 프로토콜(약속, 규칙) ∴ HTTP는 인터넷에서 클라이언트와 웹 서버간 통신(데이터를 주고 받음)을 위한 프로토콜 중 하나 기본 포트 80 하이퍼텍스트 문서를 표현하기 위한 텍스트 형식의 마크업 언어가 HTML(하이퍼 텍스트 마크업 언어) 문서 같은 것을 교환하기 위한 간단한 프로토콜이 HTTP(하이퍼텍스트 전송 프로토콜) 문서를 디스플레이하기 위한 클라이언트가 WWW(첫번째 브라우저) CORS(Corss-Origin Resource Sharing) 보안상의 이유로 브라우저들이 다른 도메인에게 XHR 요청 보내는 것을 제한할 .. 2021. 4. 8.