전체 글(408)
-
(데이터베이스) Lost update와 serializable
트랜잭션에는 4가지 격리수준이 있습니다. read uncomittedread comittedrepeatable readserializable 그리고 각각의 트랜잭션은 다음과 같은 문제를 발생할 수 있습니다.dirty readnon-repeatable readphantom read(phantom read는 MVCC덕에 발생하지 않습니다.) 하지만 이와 별개로 serialiable을 제외한 트랜잭션 격리 레벨에서 발생할 수 있는 lost update 문제가 있습니다. Lost updateLost Update는 동시성 제어 문제 중 하나로, 두 개 이상의 트랜잭션이 동시에 같은 데이터를 수정하려고 할 때 발생할 수 있습니다. 이는 하나의 트랜잭션이 수행한 업데이트가 다른 트랜잭션에 의해 덮어쓰여지는 상황을 말..
2024.07.14 -
당신의 Go 코드의 nil 체크가 실패하는 이유(feat. interface)
* 몇 개월 전, 회사에서 문제 해결을 위해서 리팩터링이 있었고, 그 과정에서 에러가 발생했었는데, 그 경험을 공유하고자 이 글을 작성합니다. 저에게 하루 약 120만 건 이상의 요청이 들어오는 서버에 관한 태스크가 주어졌습니다. 서버에 새로운 파이프라인을 추가했고, 이에 대해서 개발환경에서 모든 테스트를 마치고, 실제 운영환경에 배포했습니다. 무사 배포를 기원했지만, 배포하자마자 서버는 죽었다 살아나기를 반복했고, 이 때문에 바로 서버를 롤백했습니다. 저는 매우 의아했습니다. 에러가 발생한 지점의 코드를 저는 고친 것이 없었고, 해당 지점에서 원래 에러가 발생하고 있지 않았기 때문이죠. 그렇게 한 시간 동안 원인을 찾기 위해 로그를 열심히 찾았고, 결국 문제의 원인을 찾아냅니다. 문제 발생의..
2024.05.13 -
(회고)2023년 회고
올해는 무엇을 했고, 어떤 것을 얻었는지 나열함으로써 한 해를 돌아보려 합니다. 23년 역시 많은 일들이 있었고, 많이 성장했으며, 많은 어려움이 있었던 시간이었습니다. 2월, 길벗 출판사 멘토링 시작 우연히 예전에 활동했던 개발 동아리를 통해서 멘토링을 지원했고, 코딩 자율학습 멘토링을 하게 되었습니다. 게시판에 올라온 질문에 대해서 답변을 하고, 학습 가이드를 만들었어요. 많은 분들이 예전에 제가 똑같이 겪었던 시행착오를 겪고 있더라고요. 과거의 저를 도와주는 마음으로 열심히 답변을 달았습니다. 이때의 인연으로 지금까지 파이썬뿐만 아니라, C, HTML+JS, 스프링 부트까지 모두 멘토 및 튜터로 활동하고 있어요. 3월, 채널톡 입사 호감이 있었던 회사였는데, 우연히 채용공고를 보게 되었고 1월 말 ..
2023.12.29 -
(Spring) JpaRepository는 인터페이스인데 어떻게 동작할까?
Java의 인터페이스 Java의 인터페이스는 추상 메서드를 정의할 수 있습니다. public interface Person { void walk(); void run(); } 이제는 너무나 잘 아시겠지만, Java 8버전 이후로는 기본 메서드를 작성할 수 있습니다. public interface Person { void walk(); void run(); default void sayHello() { System.out.println("Hello"); } } 또한 인터페이스의 추상메서드를 사용하기 위해서는 반드시 구현이 필요합니다. 왜냐하면 껍데기만 제공해주는 '인터페이스'이기 때문이죠. public class User implements Person { void walk() { System.out.pr..
2023.08.31 -
(나도코딩의 파이썬 입문) 11장. 모듈과 패키지(p.382~395)
안녕하세요! 멘토를 담당하게 된 이안입니다. 오늘은 11장 '모듈과 패키지'에 대해 이어서 학습할게요. 이번이 마지막 시간이네요 오늘 공부할 내용은 다음과 같습니다. 🧐 공부할 내용(p.382~395) * 내장 함수 사용하기 * 외장 함수 사용하기 1. 내장 함수 사용하기 책에서는 내장 함수를 어떻게 하면 사용할 수 있는지에 대해 설명해 줍니다. 우리는 이미 많은 내장 함수를 써왔어요. len(), input(), int(), str() 등등 다양한 내장 함수를 사용했죠. 우리는 모든 내장 함수를 기억하지 못합니다. 하지만 우리는 dir()이라는 함수를 사용해서 해당 객체가 어떤 내장 함수를 사용할 수 있는지 확인할 수 있습니다. 책에서는 dir함수를 이용해서 random 모듈, pickle 모듈, st..
2023.03.17 -
(나도코딩의 파이썬 입문) 11장. 모듈과 패키지(p.369~381)
안녕하세요! 멘토를 담당하게 된 이안입니다. 오늘은 11장 '모듈과 패키지'에 대해 이어서 학습할게요. 오늘 공부할 내용은 다음과 같습니다. 🧐 공부할 내용(p.369~381) * 패키지와 모듈 위치 확인하기 * 패키지 설치하기 1. 패키지와 모듈 위치 확인하기 파이썬에서는 inspect 모듈을 활용하면 현재 사용하고 있는 모듈의 위치를 확인할 수 있습니다. import inspect from travel import * import math print(inspect.getmodule(thailand)) print(inspect.getmodule(math)) 책에서 확인하는 방법과 파일 위치가 바뀌었을 때도 잘 확인이 된다는 것을 상세히 설명해 줬습니다. 그래서 저는 inpsect 모듈에 대해서 좀 더 ..
2023.03.16