전체 글
-
__init__.py 톺아보기언어/파이썬 2023. 8. 12. 20:56
들어가기 전에 파이썬으로 작업할 때 종종 __init__.py 를 볼 때가 있습니다. 어떤 역할을 하는 것 인지 유추하기 위해 파일을 클릭해봐도 빈 파일이거나 알 수 없는 __all__ = ['이상한', '문자열'] 등이 있거나 from .module import SomeClass 와 같이 알 수 없는 import 를 하는 코드만 나와있습니다. 어떤 역할을 하는 것인지 알 수 없어 __init__.py 의 역할을 톺아보는 시간을 이번 포스팅에서 갖겠습니다. __init__.py 를 왜 사용할까? 디렉토리를 패키지로 인식 시키기 위해 많은 글들을 보면 __init__.py 를 사용하므로써 파이썬에게 디렉토리가 패키지임을 알려주는 파일이라고 합니다. 하지만 이런 설명은 패키지와 디렉토리와 같은 개념을 알아야..
-
일간 Git(1)카테고리 없음 2023. 3. 30. 21:43
일간 Git(1) git clone 시 디렉터리 이름을 다른것으로 하고 싶을 때 **git clone ex. git clone my-algorithm** git diff 시 이미 staged 된 것을 보고 싶을 때 **git status --staged git status --cached # 둘이 같은 옵션** git rm **git rm = rm + git add # 만약 로컬에 있는 파일은 그대로 두고 원격(github)에 있는 파일만 삭제하고 싶을 때 git rm --cached git commit -a -m "commit message" git push** git mv **# file 이름 변경하기 git mv = mv + git rm + git add **
-
Mockk(relaxed = true) 는?언어/Kotlin 2023. 3. 13. 23:00
테스트 코드를 짜다보면 특정 클래스의 메서드가 특정 방식이 반환되기를 기대할 때 종종 Mock을 이용해 테스트를 짭니다. 언어마다 여러가지 목킹 도구들이 있고, 그중 코틀린은 Mockk 가 주로 사용됩니다. 코틀린의 테스트 코드를 보면 모킹을 다룰 때 mockk(relaxed = true) 로 되어있는것을 볼 수 있습니다. relaxed = true 를 파라미터로 줄 때와 그렇지 않을 때의 사용방법이 어떻게 다른지 비교해보겠습니다. relaxed = true // Member.kt @Entity class Member( @Column(name = "name") val name: String, ) { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) pri..
-
비콘체인Web3 2023. 3. 7. 19:43
비콘 체인 비콘 체인은 이더리움 생태계에 지분 증명(Proof-of-Stake)을 도입했습니다. 비콘체인은 2022년 9월에 기존 이더리움 작업 증명(Proof-of-Work) 체인과 합병되었습니다. 비콘 체인은 현재의 이더리움을 보호하는 합의 로직과 블록 가십 프로토콜을 도입했습니다. 비콘 체인은 2020년 12월 1일에 출시되었으며, 2022년 9월 15일에 더 머지 업그레이드를 통해 이더리움의 합의 메커니즘으로 지분 증명을 공식화했습니다. 비콘 체인이 무엇인가요? 비콘 체인은 2020년에 출시된 최초의 지분 증명 블록체인의 이름입니다. 이더리움 메인넷에서 지분 증명(Proof-of-Stake) 합의 로직을 활성화하기 전에 지속 가능하고 나이스한 방식인지 확인하기 위해 만들어졌습니다. 따라서 기존 작..
-
Spring delete 메소드 주의사항Spring 2023. 2. 14. 22:33
Delete 쿼리 종류 TL;DR 속도 측면에서는 deleteAllInBatch() 가 가장 빠르다. test 코드를 제외하고는 deleteAllInBatch() 를 사용하지 말자 설명 delete(entity) 해당 메서드는 CrudRepository 에 등록되어 있는 메서드 입니다. 엔티티를 파라미터로 받아 해당 엔티티를 삭제합니다. deleteAll() 해당 메서드는 CrudRepository 에 등록되어 있는 메서드로 해당 레포지토리에서 관리 되는 모든 entity 를 삭제합니다. deleteAllInBatch() 해당 메서드는 JpaRepository 에 등록되어 있는 메서드로 모든 entity 를 한번의 함수 실행으로 삭제합니다. 예시 코드의 예시로 설명해보겠습니다. 예시로 다룰 엔티티는 Me..
-
Kotlin 에서 Spring 으로 테스트할 때 주의사항Spring 2023. 2. 14. 20:19
문제 상황 kotlin 에서 JUnit 을 사용하여 테스트를 구성했지만 org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter 오류가 발생했습니다. @SpringBootTest class MemberRepositoryTest( val memberRepository: MemberRepository, ) { @Test @DisplayName("멤버 삭제") fun deleteMember() { val member = memberRepository.save(MemberFactory.of("test")) memberRepository.delete(member) } } 해결 방..
-
데이터 중심 애플리케이션 설계책/데이터 중심 애플리케이션 설계 2023. 2. 12. 20:35
요약 분산시스템에서 일어날 수 있는 문제들 네트워크로 패킷을 보낼땐 패킷은 손실되거나 임의대로 지연될 수 있다는 것을 항상 기억 해야 합니다. 분산 시스템에 올라간 노드는 서로의 시간이 일치하지 않을 수 있습니다. 노드의 응답 시간은 상당기간 동안 반환 되지 않을 수 있습니다. 이 경우, 다른 노드에 의해 죽었다고 판단될 수 해당 노드는 재시작 될 수도 있습니다. 다시 살아났더라도 멈췄다는 사실을 알지 못할 수 있습니다. 부분 실패 가 생길 수 있다는 사실이 분산 시스템의 뚜렷한 특성입니다. 대부분의 시스템은 노드에 장애가 발생했는지 알 수 있는 정확한 메커니즘이 없어서 대부분의 분산 알고리즘은 원격 노드를 아직 쓸 수 있는 지 결정하기 위해 타임아웃을 사용합니다. 단일 노드에서는 오히려 이런 합의 알고..
-
회복탄력성읽은 책들 2023. 1. 10. 20:44
최근 정말 운이 좋게 정말 좋은 분들을 많이 만났습니다. 그 중 한분에게 제가 가지고 있는 미래에 대한 막연한 불안감과 현재 가지고 있는 불안감을 얘기 했을 때 그 분께서 김주환 교수님의 영상을 추천해주셨습니다. 사실 교수님께서 하시는 말씀이 영상으로는 잘 이해되지 않았습니다. 하지만 얼핏 들은 키워드로 도움이 많이 될 수 있을 거 같다는 생각으로 교수님의 저서중 하나인 회복 탄력성을 구매해 읽게 되었습니다. 살아가면서 개인적으로 이런생각을 많이 했습니다. "수능만 끝나면 내 인생은 행복할거야", "군대만 제대하면 내 인생은 행복할거야", "취업만 되면 내 인생은 행복할거야" 사실 이 말도 맞는 말이라고 생각합니다. 실제로 이 일들이 일어났을때 저는 너무 행복했고 많이 웃고 다녔습니다. 하지만 이런 행복..