Posts

optimistic lock vs pessimistic lock

optimistic lock : 말 그대로 lock을하고 update 를 하는 것에 대해 낙관적이다. 일단, 각 table 별로 추가적인 column 을 사용한다. hash, timestamp, version  등이다. 실패하지 않을것이라고 생각하고, lock 없이 update  를 시도한다. 대신, 읽었을때와 쓰는 순간에 version 을 비교해서 같으면 그사이 변경이 없었다는 뜻이므로 update 를 마무리를 하고, version값을 1 증가시킨다. 만일 비교한 값이 다르면 그사이에 이미 update 가 되었기 때문에 현재의 transaction  결과물은 무의미해진다. 따라서 이 결과는 쓰일수가 없고,  application level  에서 재시도를 할지, 무시할지 등에 대해 처리를 해야한다. pessimistic lock : update 를 하는것에 대해 비관적이다. 그러므로 update 를 하기 전 해당  row 에 대해 lock 을 걸어잠그고  update 를 한다. 그렇기 때문에 일단 lock 을 얻었으면 별다른 이유가 없는한 현재 transacton은 실패하지 않고 DB 에 쓰이게 된다. 다만, 그사이에 다른 transaction 에서 접근하는데 제약이 있다.  제약은 다시 두종류로 나누게 된다.  shared / read lock : read  는 하게 해준다 exclusive / write lock : read 도 못하게 한다 성능 측면에서 보면, pessmistic lock 이 무조건 걸어잠그고 들어가기 때문에 optimistic lock 이 더 유리하다고 볼 수는 있다. pessmistic lock 은 더구나 deadlock  의 잠재적인 위험성도 가지고 있다. concurrent access 에 따른 conflict 가 적을 것으로 예상되면, optimistic lock 을 써도 된다고 볼수 있겠다. 하지만 conflict 가 매우 많이 발...

내가 생각하는 영어 말하기가 어려운 이유 / 내가 했던 학습방법 비교 / 쉐도잉 컨텐츠의 구분

영어를 공부할 때, 4가지 영역중 가장 하기 힘든 부분이 말하기 다. 1. 듣기, 쓰기, 읽기 무엇보다 가장 적극적인 행동이 필요한 영역이다. 2. 다른 영역보다 실시간적인 요소가 중요시 된다. 3. 내용 자체도 힘든데 + 억양, 문법,발음까지 신경써야 한다. 4. 내가 한 말이 맞는지, 적절했는지, 확인할 길이 별로 없다 5. speech, presentation 같은게 아니라면, 대화를 할 상대방까지 필요하다. 많은 사람들처럼, 나도 토익은 900이 넘어도, 말은 제대로 할 줄 몰랐다. 이 상황을 조금이라도 극복해보기 위해, 다양한 방법들을 시도했었다. 1. 대형 학원 영어회화 2. 전화영어 3. 1:1 원어민 회화 4. 영국문화원 영어회화 5. skype  원어민 회화 6. OPIc 공부 7. IELTS 공부 쉐도잉 자료들에 대한 생각 1. News 정해진 스크립트를 완벽하게 훈련된 아나운서나 앵커가 읽는다. 이것을 같은 속도로 따라 말하는건 정말 어렵다. 속도를 따라가는 연습, 빠른 영어가 입에 붙는 연습 용도로는 좋지만, 내용이나 단어가, 아무래도 뉴스이다 보니 일상 생활과는 거리가 있는것 같다. 한국어를 배우는 사람이, 9시 뉴스 를 쉐도잉 하는것에 대해 어떤 느낌일지 생각해본다. 딱딱하다. 그래서 arirang 뉴스를 한동안 연습했지만, 잠정 중단했다. 2. Movie, drama casual 한 대화를 접할 수 있는 유일한 컨텐츠이다. 하지만 이 역시도 몇가지 생각해봐야하는데. 영화나 드라마도 역시 짜여진 각본을 배우들이 연기하는 것이다. 호흡 조절이라던지, 타이밍 같은것을 연습하고 짜맞추어낸 결과물이다. 그리고 당연히, 주제, 배경, 시대, 인물의 성격에 따라 쓰는 언어가 천차만별이다. 현대식, 일반 가정이나 학교 또는 직장을 배경으로 한다 하더라도, 극적인 재미를 주는 요소나 컨텐츠가 들어가기 때문에. 이를 주의해야한다. 내가 갑자기 미국인 대가족 틈에 살 일이 있을까. 갑자기 외국인...

내가 영어가 안들리는 이유 / 영어로 말을 못하는 이유

나는 영어가 왜 안들릴까. 곰곰히 생각을 해본다. 1. 단어, 문법, 문장구조를 모르면 안들린다. 당연한 말이지만, apple 이라는 단어를 모르면, 언어가 아닌 소리에 불과하다. 2. 또박또박, 천천히 들리지 않으면 안들린다. 실전에서든, 미드나 영화에서든, 그 누구도 듣기 좋은 속도와 발음으로 이야기하지 않는다. 내가 생각하는, 그리고 들릴것으로 기대하는 apple  이라는 단어의 sound와, 실전에서 사람들이 말하는 sound  의 괴리는 정말 크다. 3. 다양한 문맥속에서 들어본적이 없으면 잘 안들린다. 같은 단어라도 다양한 문맥에서 다양한 의미로 쓰인다. big apple  이라는 단어를 문맥에서 이해하지 못하면 그 상황에서 생각지 못한 단어가 나왔기 때문에 놓치기 쉽고 들리지 않는다. 4. 내용이 복잡하고 길어도 안들린다. 듣고, 경우에 따라 자연스럽게 번역이 되고, 이해가 되어야 하는데. 내용이 복잡하고 길어지면 이것을 감당할 수가 없다. 왜 나는 영어로 말을 못할까. 이것도 생각을 해본다. 1. 똑같이, 말하고 싶은 단어를 모르면 말할수가 없다. 형이상학적이다, 라고 표현을하고 싶은데 그 단어를 영어로 모른다. 그러면 영어가 나올 수가 없다. 문법, 문장 구조도 마찬가지. 2. 지금 상황에서 어떤 단어를 어떤 전치사와 함께 써야하는지를 모른다. 한 단어에 여러가지  뜻이 있고, 한 의미를 표현하는데 여러가지 단어들이 있기 때문이다. 들었을땐 이해할 수 있는 내용이지만, 말로 할수 없다. 3. 한국어로 말해도 말하기 힘든 경우가 있다. 논리적 사고를 한편으로 하면서 정리해가면서 말을 해야하는 경우. 회의 진행이나, 토론 같은 경우가 있다. 비교적 문맥이 정해져 있지만, 말이 막히니 생각이 막히고, 다시 말도 막히는 경우가 있다. 영어가 문제라기 보단 말하기 능력 자체가 부족한 것이다. 그럼 어떻게 해야할까. 생각해본다. 1. 첫번째로는 많이 들음으로써 다양한 context...

shadow speacking / active listening / 영어 말하기 / 영어 쉐도잉 (15/4)

Image
영어 말하기 연습자료 영어 말하기 훈련용 자료입니다. 뉴스 스크립트를 따라하는게 좀 지겨워서, 다른 자료를 좀 찾아보고 연습을 했는데요. BBC podcast 의 일부분을 BBC Reel 에서 영상으로 만든 내용 입니다. 아리랑 뉴스도 어렵다고 생각했는데... 원어민의 속도는 정말 넘사벽이네요.  단어는 분명 어려운게 없으나, 익숙한 단어여도 이정도 속도로 말을 하는게 정말 힘든 일이라는걸 다시한번 느낍니다. 빨강색  강조한 단어는 제가 듣기에 intonation 이 들어간 부분이고, // 표시는 긴 문장에서 호흡을 순간적으로 끊어가는 부분입니다. <> 사이는 특히나 말하는 속도가 빠른 구간 입니다.  https://www.bbc.com/reel/video/p088cjqy/how-much-free-time-do-we-really-have-

SwiftUI @State, @ObservedObject, @EnvironmentObject 익히기

 앱을 개발하려고 보면, 사용자의 입력을 받든, 서버에서 값을 가져오든, 변수에 값을 저장하고, 그 값의 변화에 따라 화면의 UI 가 바뀐다. objective-c와 이전의 swift 에서는 어떻게 했는지 까먹었으나, SwiftUI 는 새로 공부해보면서 정리하려고한다. There are several concepts regarding the binding between data and view of the data in SwiftUI. Below is what I understood from other developer's blogs. @State The most basic annotation that we can use. The important thing is it can be only used in a specific view.  So usually I'd use with `private` keyword. With @State basically,  struct View 밖의 special memory 에 저장되고, it is managed by SwiftUI. 이 값이 바뀔 때마다 SwiftUI 는 해당 view 를  rebuild 한다. @ State private var showFavorited : Bool = false var body : some View {      VStack{          Button(              action: { self .showFavorited.toggle() },              label: { Text( "Change filter" ) }          ) ...

Outbox pattern and Change Detect Capture

In Microservices system architectures,  basically what we want to do is splitting the one big service into small modules. And by doing this, The overall system can be more elastic. But splitting one system into smaller modules leads to an inevitable communication between modules.  I think when it comes to microservices, it's all about data and updating the data and sending the data to the other service. 1. Synchronous  REST API is a common way to communicate with each other. Internally, well-defined API can fully achieve this task. But there are several problems. First, they need to know each other before the communication. Service Discovery provides a way of doing this but the problem still exists. And the module always should be prepared for the case of failure. And calling the HTTP method to another module will block the usage and in the end, the overall system latency will rise. 2. Asynchronous We can take advantage of a message bus like Kafka. After pe...

shadow speacking / active listening / 영어 말하기 / 영어 쉐도잉 / 뉴스 쉐도잉 (7/4)

영어 말하기 연습자료 영어 말하기 훈련용 자료입니다. 아리랑뉴스 스크립트이고, 아래 링크를 통해 원문 및 뉴스 리포터를 직접 들을 수 있습니다. 대부분의 사람들이 그렇듯 저도 영어의 4가지 항목(듣기, 읽기, 쓰기, 말하기) 중 말하기가 제일 어려운데요. 영어 공부를 한다고 할때 4가지 항목중 말하기 연습에 가장 적은 시간 (사실상 0) 을 들였기 때문입니다. youtube 에 보면 쉐도잉에 대한 찬반, 효과에 대한 영상들이 많은데요. 저는 일단 최대한 많이 말해보는게 중요하고, 입에 붙이는 연습이 필요한 측면에서는 쉐도잉이 괜찮다고 생각합니다.  일단 대화는 혼자 연습하기가 불가능하고, 영화나 드라마는 내용이나 캐릭터 성격에 따라 단어나 억양이 천차 만별이라, 뉴스 스크립트로 연습을 시작했습니다. 난이도는 뉴스이다보니 말하는 속도나 단어들이 아주 기초 수준은 아닙니다. 저는 30초에서 2분 사이의 스크립트를 하루 1시간씩 반복 스피킹 훈련 하고 있습니다. 파랑색으로  강조한 단어는 제가 듣기에 intonation 이 들어간 부분이고, // 표시는 긴 문장에서 호흡을 순간적으로 끊어가는 부분입니다. 스크립트와 실제 리포팅의 단어가 다른 경우, 실제 들리는 단어로 수정하였습니다. 모르거나  헷갈리는 단어는 기사 하단에 적었습니다. 영어 뉴스 쉐도잉 방법 1. 스크립트를 따라 읽어보세요. 2. 직접 기자가 되어 리포팅을 한다는 느낌으로 소리내어 말해보세요. 3. 링크를 통해 실제 리포팅을 들어보시고, 반복해서 따라 말해보세요. 4. 충분히 입에 붙었다고 생각이 되면 앱을 통해 녹음을 해서 본인의 스피킹과 뉴스를 비교해보세요. Japanese Prime Minister Shinzo Abe has declared a state of emergency in seven prefectures in Japan, including Tokyo and Osaka . Prime Minister Abe had said Monday that t...