일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 연산자와의 관계
- 즉시로딩
- N+1
- 오버로딩
- 참조타입
- 변수와 메서드
- Java
- select
- 피연산자
- 서버 스크립트
- 컬렉션 프레임워크
- delete
- 지연로딩
- SQL
- exclusive lock
- null/not null
- 추상메서드
- 프로그래머스
- jsoup
- Shared Lock
- InterruptedException
- 원시타입
- 프로그래머스 코테
- 멱등성
- 메세지 큐
- 변수와 상수
- bufferedInputStream
- git 기초
- foreigen key
- 오버라이딩
- Today
- Total
목록전체보기 (77)
[JAVA_Back-End]
DBMS에서의 Lock- DB안에서 여러 트랜잭션이 동시에 데이터에 접근하려는 경우에 발생하는 데이터 불일치 문제를 해결하기 위해 사용- 다양한 종류의 lock을 제공하여 트랜잭션 간의 충돌을 방지하고 데이터의 일관성을 유지한다. - 트랜잭션의 순차적 진행을 보장할 수 있도록 하는 직렬화 장치 Lock 종류 (대표적인 2가지)Exclusive Lock (= Write Lock = 배타적 잠금) - 한 트랜잭션이 데이터를 수정하고 있으면 다른 트랜잭션은 해당 데이터를 읽거나 수정할 수 없다.- Exclusive Lock에 걸리면 Shared Lock을 걸 수 없다.- Exclusive lock에 걸린 테이블, 레코드 등의 자원에 대해 다른 트랜잭션이 Exclusive Lock을 걸 수 없다. Share..

더보기코테를 준비해야겠다는 생각만 가진 지 어언 3년째....이제는 더이상 물러날 곳이 없다. 진짜 해야한다는 말.각 알고리즘의 실행시간을 비교하여 어떤 알고리즘이 더 우수한 지 파악하는 데에 중점이 있다. (알고리즘 간의 효율성)시간복잡도입력이 커질수록 알고리즘의 실행속도가 어떻게 바뀌는 지 분석함 시간 복잡도의 유형빅-오메가 : 최선일 때의 연산 횟수를 나타낸 표기법빅-세타 : 보통일 때의 연산 횟수를 나타낸 표기법빅-오 : 최악일 때의 연산 횟수를 나타낸 표기법 (= 실행시간이 가질 수 있는 최대치) Big O 표기법?빅오 표기법은 알고리즘 효율성을 상한선 기준으로 표기(알고리즘 효율성은 값이 클수록 즉, 그래프가 위로 향할수록 비효율적임을 의미)* 입력의 크기와 실행시간의 관계* 상수를 없애고 n..

Kafka를 알기 전에는 MQ(Message Queue)를 알아야 한다..!메시지 큐(MQ)비동기 메시지를 사용하는 다른 응용프로그램 사이의 데이터 송수신을 의미하는데 MOM을 구현한 시스템 => MQ(메세지 큐)* 메시지 지향 미들웨어(Message Oriented Middleware: MOM)Producer가 메시지를 큐에 전송하면 Consumer가 처리하는 방식메시지를 비동기로 처리하고 queue에 저장하기 때문에 consumer에게 병목을 줄여줄 수 있는 장점이 있음Kafka 란?분산형 스트리밍 플랫폼메시지를 메모리에 저장하는 메시징 시스템과는 달리 파일에 저장을 하기 때문에 카프카를 재시작해도 메시지 유실 우려가 감소된다.브로커가 컨슈머에게 메시지를 push해주는 방식이 기본 메시징 시스템이라면..
JPA의 N+1문제로 데이터베이스의 과부하가 생길 수 있다이 한 문장으로는 해당 문제가 어떤 경우이고 결과적으로 어느정도의 과부하인지 가늠이 잘 안된다.아래 내용으로 조금 더 자세히 알아보도록 하자.N+1 문제 특정 동작에 대한 데이터 요청이 1개의 쿼리로 처리되길 기대했는데 예상치 못한 N개의 추가 쿼리가 발생하는 현상 특정 테이블과 연계된 다른 데이터를 조회할 때, 1차 캐시에 해당 내용이 없으면 관련 내용을 쿼리를 통해 불러오게 된다.만약, 이러한 연계 데이터들이 100만개라면...? N+1문제가 발생하면서 데이터베이스에 엄청난 과부하가 발생한다는 것이다... JPA 어노테이션인 @OnetoMany의 경우 해당 내용이 적용된다.ex) 하나의 속성(One)에 연결된 다른 테이블의 여러 속성(Many..
Transaction?- 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위- 작업의 단위는 사용자가 어떤 행위를 했을 때 수행되는 명령문들을 합친 것이라고 생각하면 된다.EX) 저장버튼을 누름 -> DB)Insert 후 목록 최신화를 위해 Select 동시 수행(작업단위 = 트랜잭션) -> 최신화된 목록 확인 트랜잭션(Transaction)의 특징원자성(Atomicity) : 트랜잭션이 데이터베이스에 모두 반영되거나, 전혀 반영되지 않아야 한다.일관성(Consistency) : 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다.독립성(Isolation): 어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연산에 끼어들 수 없다.지속성(Durability): 트랜잭션이 성공적으로 완료되었을 경우,..
배열 - 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조 특징 1. 인덱스를 통해 참조할 수 있다. 2. 선언한 자료형의 값만 저장할 수 있다. 3. 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. => 값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요하다. 4. 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없다. ※ 배열은 구조가 간단하므로 코딩 테스트에서 많이 사용한다. 리스트 - 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조 특징 1. 인덱스가 없으므로 값에 접근하려면 Head 포인터부터 순서대로 접근해야 한다. 2. 포인터로 연결되어 있으므로 데이터를 삽입하거나 삭제하는 연산속도가 빠르다...
CodeIgniter? PHP기반의 프레임워크 MVC모델을 지원하며 빠르다. Model: Controller로부터 전달받은 객체 또는 데이터를 Application의 Business Logic에 따라 가공 View: 데이터의 입력과 출력을 담당 Controller: View로부터 넘겨 받은 메시지 또는 객체를 파악하여 해당 객체를 어떤 Model로 전달할지를 결정 Controller 1. URL에 맵핑되는 작업을 수행 if) url이 www.testpage/index.php/webinfo 라면,Controller 디렉토리 밑에 webinfo.php를 생성하면 codeigniter가 1:1 매칭을 한다. ※ webinfo.php파일 내부에서 class name은 webinfo로 동일하게 사용해야한다. ※ ..
1. 과일로 만든 아이스크림 고르기 코딩테스트 연습 - 과일로 만든 아이스크림 고르기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Tip. INNER JOIN : 두 테이블에서 같은 값만 조인 SELECT 컬럼명 FROM 테이블명1 INNER JOIN 테이블명2 ON 조인 조건; => JOIN하는 두 개의 테이블 모두에 데이터가 존재하는 행에 대해서만 결과를 가져온다. 결과 SELECT A.FLAVOR FROM FIRST_HALF AS A INNER JOIN ICECREAM_INFO AS B ON..
1. 잡은 물고기 중 가장 큰 물고기의 길이 구하기 코딩테스트 연습 - 잡은 물고기 중 가장 큰 물고기의 길이 구하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Logic 1) 최대값 찾기 MAX(컬럼명) ex) 잡은 물고기 길이 중 최대값 찾기 SELECT MAX(LENGTH) FROM FISH_INFO; 2) 결과에 "cm"문자 연결 CONCAT(컬럼명, "cm") ex) 잡은 물고기 길이에 cm 붙이기 SELECT CONCAT(LENGTH, "cm") FROM FISH_INFO; 결과 SE..
깃허브 에러메세지 원래 있는 main 브랜치에 push하려고 했을 때 발생한 에러코드 error: src refspec main does not match any 원격저장소와 로컬저장소의 파일 구조가 다를 때 혹은 브랜치의 이름이 다르면 발생할 수 있다. 일단 내가 할 수 있는 해결방법은 3가지였다. 1. pull을 먼저 시도하고 다시 push를 진행한다. 2. 강제적으로 push한다. => 매우 위험하다. 기존 원격자료가 없어질 수 있기 때문이다. 3. 브랜치 새로 생성 후 해당 브랜치에 push한다. 혹시나 브랜치의 이름이 다른 건 아닐까 해서 로컬 저장소의 브랜치명을 확인했다. $ git show-ref Github에서 Repository를 생성하면 default로 main브랜치가 생성되기 때문에 ..