목록전체 글 (531)
개발놀이터
Subsequent : 이후, 그후 intact : 손대지 않은, 손상되지 않은 populate : 거주시키다 / 장소를 차지하다 diminish : 감소하다 / 권위가 떨어지다 bloated : 부풀어오른 / 오만한 intuitive : 직관적인 simultaneous : 동시의 coordinate : 조정하다 / 동등한, 대등한 exclusive : 독점적인 ↔ exclusion : 제외, 베재, 추방 precede : 앞서다 / 우선하다 -> preceding : 이전의 span : 기간 purged from : ~에서 제거된 denotes : 표시하다, 나타내다 / 의미하다 One way is to create a new table and pre-fill it with data to act as ..
이번 포스팅에서는 Mysql에서 Phantom Read 부정합 문제를 어떻게 해결하고 있는지에 대해서 알아보도록 하겠습니다. 굳이 Mysql에서 라고 글을 쓴 이유는 공식문서를 여러개 찾아보던 중에 PostgreSQL과 Oracle 에선 다른 방식으로 이 Phantom Read 부정합 문제를 해결했다는 듯이 쓴 글을 몇개 봤기 때문입니다. PostgresSQL은 얼마나 smoothly 하게 이슈를 해결했는지 꼭 알고싶어서 말이죠 따라서 이번 포스팅에서는 우리가 흔히 접하게 되는 Mysql에서 Phantom Read를 어떻게 해결했는지에 대해서 알아보겠습니다. Phantom Read란? 격리 수준에 대해서 포스팅할 때나, @Transactional 에 대한 포스팅을 할 때 잠깐잠깐 등장하고 아주 간략하게 ..
오늘 포스팅에서는 흔히 Read Committed 격리 수준에서 생기는 부정합 문제인 Non-Repeatable Read 문제를 해결하기 위해 사용하는 방법이라고 알려져있는 MVCC에 대해서 알아보도록 하겠습니다. 이 포스팅에서는 MVCC가 무엇인지, 사용하면 어떤 이점이 있는지, 동작원리 등을 알아볼겁니다. MVCC에 대해서 깊게 알고싶지 않으신 분들은 그냥 Non-Repeatable Read 문제를 해결하기 위해서 Undo영역 혹은 Xmin, Xmax를 이용해 해결하는 방법론이라고 알고 계시면 될 것같습니다. 그럼 시작해보죠 MVCC란? MVCC란 Multiversion Concurrency Control의 약자로 해석해보면 "여러개의 버전으로 동시성문제를 해결하는 방법"이라고 할 수 있습니다. 왜 ..
우리는 보통 @Transactional을 많이 사용합니다. 트랜잭션을 wrapping 해주는 역할로서 많이 사용하죠. 이번 포스팅에선 @Transactional이 무엇인지, @Transactional에서 주로 사용하는 옵션인 Propagation, Isolation에 대해서 알아보도록 하겠습니다. @Transactional 우선 @Transactional에 대해서 알아봐야겠죠? @Transactional은 스프링이 만든 AOP중 하나입니다. @Transactional이 붙어있는 메서드에 한해서 트랜잭션의 원자성을 보장해주고 트랜잭션 시작, 커밋, 롤백을 수행해줍니다. @Transactional의 등장으로 트랜잭션 코드와 비즈니스 로직을 분리하여 개발자들은 좀 더 순수한 비즈니스 로직을 구현할 수 있게 되..
certification : 인증 / 증명 interoperate : 상호 운영하다. facilitate : 용이하게 하다 obsolete : 쓸모없는 / 진부한 relevant : 관련된, 적절한 / 상응하는, 상대적인 reassembling : 재조립 단어만 알면 해석되는 경우가 많았었기 때문에 단어만 정리하고 해석은 올리지 않습니다. 공부한 문서 https://www.imperva.com/learn/application-security/osi-model/ What is OSI Model | 7 Layers Explained | Imperva The OSI model describes seven layers that computer systems use to communicate over a netw..
네트워크를 공부할 때 OSI 7계층이나 TCP 4계층에 대해서 들어본적이 있을겁니다. 우리는 이번 포스팅에서 OSI 7계층, TCP 4계층이 무엇인지, 이 둘의 차이는 무엇인지, 이 계층을 알면 뭐가 좋은지에 대해서 알아보도록 하겠습니다. 우선 포스팅에 들어가기 앞서 OSI 7계층과 TCP 4계층은 크게 다르지 않다는 것을 말씀드리고 시작해보겠습니다. OSI 7계층 OSI 7계층과 TCP 4계층을 그림으로 나타내면 다음과 같습니다. 우선 OSI 7계층이 뭔지 알아야겠죠? OSI는 Open System Interconnection의 약자입니다. 이름만 봐도 대충 어떤 느낌인지 알것 같습니다. OSI 모델은 컴퓨터 시스템이 네트워크위에서 의사소통을 위해 사용되는 일곱개의 층입니다. 즉 OSI 7계층은 네트워..
configure : 구성하다 / 배열하다 / 설정하다 evident : 분명한, 명백한 transitive : 의존적인 / 의지하는 / 타자의 동작을 이행하는 include : 포함하다 / 내포하다 optimization : 최적화 comes with : ~와 함께 제공된다. fetch : 가지고 오다 / 의식을 회복시키다 / 설득하다 explicit : 명시적 allow : 허락하다, 묵인하다 / (정기적으로) 지급하다 / 인정하다 / 참작하다 compromised : 타협하다 integrity : 고결, 성실, 청렴 / 완전한 상태 demarcate : 분리하다, 구별하다 compelling : 강제적인 / 흥미를 돋우는 / 어쩔 수 없는 At the most basic level, a connec..
이번 포스팅에서는 트랜잭션과 ACID 그리고 더 나아가서 자바에서 트랜잭션을 어떻게 다루는지에 대해서 알아보도록 하겠습니다. 굉장히 딥하게 들어가기 때문에 트랜잭션과 ACID에 대한 기본적인 내용에 대해서만 알고싶으신 분들은 앞부분만 읽으시고 뒷부분은 알아만 두시는 것을 추천드리겠습니다. 최대한 쉽게 풀어서 쓸거라 찬찬히 읽으시면 이해가 안되지는 않을겁니다! 그럼 시작해보죠 트랜잭션 트랜잭션을 간단하게 한마디로 설명하자면 "데이터베이스의 상태를 변경시키기 위한 논리적인 단위" 라고 할 수 있습니다. 여기서 상태를 변경시킨다는 것은 우리가 흔히 사용하는 SQL문을 이용한 것입니다. DDL, DML등을 말하는 것이지요. 트랜잭션에 대한 개념은 이게 다입니다. 조금 허무하시죠? 이제 트랜잭션의 특징이라고 말할..
이번 포스팅에서는 커넥션 풀에 대해서 알아보도록 하겠습니다. 커넥션 풀링은 데이터 접근 패턴으로 많이 알려져있습니다. 커넥션 풀링은 데이터베이스 커넥션과 읽고/쓰는 데이터베이스 작업 성능을 포함되는 과부하를 줄이기위한 목적으로 사용됩니다. 기본적인 레벨에서 커넥션 풀은 데이터베이스 커넥션 캐싱 구현체입니다. 이것은 개발자들의 특별한 요구를 적절하게 구성할 수 있습니다. 커넥션 풀 왜 커넥션 풀을 사용해야 할까요? 이 질문에 대한 답을 얻기 위해서는 데이터베이스가 커넥션 작업을 하는 동안 벌어지는 일에 대해서 알면 답할 수 있습니다. 데이터베이스 커넥션은 데이터베이스 드라이버를 사용해서 커넥션을 엽니다. 읽기/쓰기에 의해 생성된 데이터를 위해 TCP 소켓을 엽니다. 읽기/쓰기에 의해 생성된 데이터를 소켓에..
exceed : 초과하다 abbreviate : 단축하다, 생략하다 attempt : 시도하다 / 기도하다 / 꾀하다 retrieval : 회복, 복구, 만회 / 수정 / 사전에는 안나오지만 검색이라는 뜻도 있음 alleviate : 덜다, 완화하다 vastly : 대단히 크게 we should favor the Deque interface and its implementations. 우리는 Deque의 인터페이스와 Deque의 구현체들을 주로 사용해야합니다. favor : 선호하다 / 호의 -> 대충 의역했는데 아무리봐도 선호하다나 호의로 해석하면 이상하단 말이지... First, we'll take a peek at what a Queue does, and some of its core methods..