일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 상가투자
- Outbox Pattern
- N-ary Tree Level Order Traversal
- leettcode
- 책읽고
- 수익률
- 재건축
- Course Schedule
- Mac
- 의료
- 소규모재건축
- 팁
- Google Cloud Functions
- 알고리즘
- 상가투자 비밀노트
- 상가
- Flyweight Pattern
- Function-as-a-Service
- MS Azure Functions
- java
- 투자
- iTerm2
- etf
- SAGA Pattern
- Middle of the Linked List
- LeetCode
- Eventual Consistency
- 삼성모니터M7
- 주식
- 요약
- Today
- Total
목록Dev/자세히 알아보기 (5)
개발자허허의 오늘은 뭐 먹지?
Call by Value는 함수가 호출될 때 값을 전달해주고, Call by Reference는 함수가 호출될 때 주소를 전달해준다. 그래서 Call by Value는 호출한 함수안에서 값을 어떻게 지지고 볶든 local value의 성격을 지니기 때문에 함수가 종료한 후에 값이 변화되지 않지만, Call by Reference는 주소를 바로 참조하기 때문에 호출한 함수에서의 변경이 함수가 종료된 이후에도 남는다. 그런데 JAVA는 int, float, double등 primitive type에 대해서는 Call by Value이고, array나 class instance등은 Call by Reference로 작동한다라고들 한다. 이게 무슨 이야기인지, 아래 예제를 보도록 하자. public class ..
평소에 코딩할 때 간편하다는 이유로 stream을 많이 쓰는 편인데 list와 stream하고 비교하면 어떤 것이 더 속도가 빠를지 궁금해졌다. 그래서 반복문을 사용하는 것과 stream을 이용하는 것의 비교를 해보기로 했다. public static List useFor(List integerList) { List res = new ArrayList(); for(int i : integerList) { if(i % 2 == 0 && i % 3 == 0) { res.add(i); } } return res; } public static List useStream1Filter(List integerList) { List res = integerList .stream() .filter(i-> i % 2 ==..
블라인드에 이런 질문이 올라왔다. 메시지큐를 쓰다가 메시지가 중간에 소실되는 건 어쩔 수 없을텐데, 어떻게 감지/조치하는지? 괜찮은 답변들이 많아서 정리해보면... 검사하는 로직 넣어서 실패하면 한번 더 보내게 하지 않나? 아니면 될때까지.. 일정이상 fail나면 skip 및 로그 처리 모든걸 다 감지는 못해서 심각한 장애가 일으킬 수 있거나 필수 데이터가 빠져있으면 job으로 배치 돌려서 그때그때 해결하거나, saga pattern으로 최소한의 필수 데이터를 고려해서 정합성을 맞춤 클라이언트 입장에서 전송이 실패하면 어디 쌓아놓았다가 나중에 쏴야죠. 카프카 클라이언트에 버퍼가 있는 경우도 있고, 좀 크게 잡으려면 일단 파일에 쓰고 이걸 파일비트나 fluentd로 쏘게하면 디스크 용량만큼 버퍼로 쓸 수 ..
Transaction이란 DBMS에서 데이터를 다루는 논리적인 작업의 단위이다. Transcation ACID 1. Atomicity (원자성) : 한 Transaction의 작업은 전부 수행되거나 전부 수행되면 안 됨 2. Consistency (일관성) : Transaction의 수행 전/후에서 DB는 항상 일관된 상태여야 함 (업데이트한 데이터의 합이 전과 후에 달라지지 않아야 함 등) 3. Isolation (고립성) : 수행 중인 Transactino에 다른 Transaction이 끼어들어 변경하려는 데이터 값이 의도치 않게 변경되면 안 됨 4. Durability (지속성) : Transaction 수행 후 변경한 데이터는 영구적으로 저장되어야 함 Isolation Level ACID를 다 지..
이번 포스트는 JAVA의 String과 Flyweight 디자인 패턴에 대해서 알아보려고한다. JAVA에서 String은 immutable하다고 한다. 이 의미는 무엇일까..?! String a = "test"; String b = "test"; 위와 같은 선언이 있었다고 하자. Stack영역에는 변수 a, b의 value의 주소가, Heap영역에는 변수 a, b의 value가 저장된다. 그리고 그 value는 Heap영역 안에 있는 String Constant Pool 영역에 저장된다. 위 예제에서 a,b 변수값은 "test"로 동일하므로 두 변수의 값은 같은 String Constant Pool의 주소를 가르키게 되는 것이다. 만약 a의 값이 "test2"로 바뀌었다고 했을 때, String Cons..