fragile and resilient

정리 5

[Logging] Logback이란?

로깅이란? 로깅은 시스템이 실행될 때, 시간의 경과에 따라 시스템의 상태 및 동작 정보를 기록하는 것을 말합니다. 로깅이 필요한 이유 애플리케이션에 문제가 발생했을 경우, 문제를 파악하기 위해서는 당시의 동작 및 상태 정보가 필요합니다. 사용자 로그 데이터를 활용할 수 있습니다. SLF4J Logger 추상체로 SLF4J는 logback이나 log4j2와 같은 로깅 프레임워크의 인터페이스의 역할을 한다. Logback 로깅 프레임워크 중 하나로 SLF4J의 구현체이다. Logback 은 log4j 이후에 출시된 Java 기반 Logging Framework 중 하나로 가장 널리 사용되고 있다. Logback 구조 Logback은 logback-core, logback-classic, logback-acc..

정리 2022.08.26

OAuth 2.0 인증 과정

OAuth는 인증 / 인가를 위한 개방형 표준 프로토콜로, 사용자가 인터넷 서비스(facebook, 카카오톡 등) 기능을 다른 애플리케이션에서도 사용할 수 있도록 한 것입니다. 위 글만 봐서는 OAuth가 무엇인지 감을 잡기 어려울 것이라 생각합니다. OAuth와 로그인을 일상생활 예시에 빗대어 비교한 글이 있는데요. 해당 글을 읽으면, OAuth의 동작 과정을 직관적으로 이해하는 데 도움이 될 것 같습니다. 간단하게 요약하면 회사 건물에 출입할 때, 회사 사원이 사원증을 가지고 출입하는 것이 로그인이고, 외부인이 방문증을 수령한 후 회사에 출입하는 것이 OAuth입니다. 글의 전문을 읽으시면 더 도움이 되실 것 같습니다. https://d2.naver.com/helloworld/24942 OAuth 인..

정리 2022.07.10

[Test] Test Double

테스트가 외부 요인에 의존하는 경우가 있는데요. 예시로 살펴보면, 테스트에서 DB를 연동하는 경우 테스트에서 HTTP 서버와 통신하는 경우 테스트가 이런 외부 요인에 의존하면 테스트하기가 어려워지게 됩니다. 또한, 테스트에서 사용하는 외부 API 서버가 일시적으로 장애가 나면 테스트를 수행할 수 없게 됩니다. 이렇게 테스트가 의존하는 외부 요인 때문에 테스트가 어려운 경우에는 대역을 써서 테스트를 진행할 수 있는데요. 대역의 종류에 대해 알아봅시다. 대역의 종류 Fake 프로덕션에는 적합하지 않지만, 실제 동작하는 구현을 제공한다. Stub 테스트에 맞게 단순히 원하는 동작을 수행한다. Spy 호출된 내역을 기록한다. 기록한 내용은 테스트 결과를 검증할 때 사용한다. Mock 기대한 대로 상호작용하는 행..

정리 2022.05.26

[Git] Branch 관리 (Merge, Rebase)

브랜치는 독립적인 개발을 가능하게 해줍니다. 그림을 보며 브랜치를 관리하는 방법에 대해 알아봅시다! git branch testing 먼저 testing이라는 새 브랜치를 생성하면, 새로 생성한 testing 브랜티도 마지막 커밋을 가리키고 있습니다. HEAD는 현재 작업중인 브랜치(master)를 가리키는 포인터입니다. git checkout testing 명령어를 입력하면, HEAD가 testing 브랜치를 가리키게 됩니다. 1. Merge 위의 그림이 초기 히스토리라고 가정해봅시다. 이후 master 브랜치에서 iss53 브랜치와 hotfix 브랜치를 생성하고, 각각 하나의 commit을 하면 히스토리가 위의 그림처럼 됩니다. hotfix 브랜치를 master 브랜치에 합치는 것은, 현재 브랜치 포..

정리 2022.02.14

[Git] git 영역 및 상태

Git 영역 수행 과정 Working tree에서 파일을 수정한다. Staging Area에 commit할 스냅샷들을 생성한다. Staging Area에 존재하는 파일들을 Git directory에 commit한다. checkout 명령어를 통해 원하는 버전으로 돌아갈 수 있다. git directory에 commit한 것은 local에 존재하는 것이기 때문에, remote repository에 저장해야 한다. Status working directory의 파일은 Tracked와 Untracked로 나뉘게 된다. Tracked: git이 관리하고 있는 파일. Untraked: git이 관리하고 있지 않는 파일. Tracked된 파일은 Unmodified, Modified, Staged 상태 중 하나이다...

정리 2022.02.14