완벽한 아키텍처에 대한 믿음
·
Computer Science/Concept
1. Introduction 📌 Topic헥사고날 아키텍처를 따로 깊게 배운 적이 없는데, 요새 내가 즐겨쓰는 구조가 헥사고날 아키텍처라고 책이 말해주더라.띠옹, 나는 그 유명한 육각형 그림 말고는 본 적도 없는데 이게 무슨 일이지. 좋은 소프트웨어 설계에 대해 끊임없이 고민해본 개발자라면, 아마 나와 비슷한 경험을 겪어봤을 이가 적지 않을 것이다. Atomic design pattern, FSD, MVC, MVVM, 헥사고날 아키텍처, SOA, DDD 같은 용어 따위에 매몰되지 않아도, 여러 이슈들을 부딪혀가며 깎고 깎고 깎다보면 다들 비슷한 형태로 귀결된다.이 정도까지 오면 선호도에 따른 차이가 대부분인데, 이건 원칙을 어떻게 해석하고 적용하냐의 차이에서 비롯하는 듯하다.가끔 보면 이게 경전 해석이..
[Security] Password Encoder 내부 메커니즘
·
Computer Science/Security
1. Introduction 📌 Password Encoder는 어떻게 동작할까?이번에 과제 테스트에 "비밀번호는 암호화 되어야 한다."라는 요구 조건이 명시되어 있었다.그런데 Spring Security를 사용해도 될지 긴가민가한 상황이었기에, 그냥 내가 직접 구현해볼 수 있는 좋은 기회라고 여겼다. 그리고 궁금하지 않은가?보통 Spring에서 암호화를 위해 Spring Security의 BCryptPasswordEncoder를 사용할 텐데, 해당 컴포넌트를 사용할 때 비밀키를 주입해주지 않아도 적용이 된다.Password Encoder는 어떤 원리로 비밀번호를 복구 불가능하게 암호화하고, 또 이를 다시 검증할 수 있는 것일까? 암호화 기능을 구현하기 위해 OWASP 문서를 읽어보며 구현을 해봤다. ..
[Network] 홈 서버 구축 1 - 브릿지 모드 설정, 포트 포워딩
·
Computer Science/Network
💡 SK 모뎀(H66ON) 및 공유기(H734GP)를 사용 중입니다. 다른 통신사의 경우 방법이 다소 차이가 날 수 있습니다.1. Introduction 📌 Network Structure홈 서버를 구축하기 전에 가장 먼저, 가정 내 네트워크 구조가 어떻게 구성되어 있는지 파악해야 한다. 내 경우엔 SK 통신사의 모뎀과 라우터(=공유기; 정확히는 무선 공유기)를 사용 중이었는데, 덕분에 학교에서 배운 내용하고 달라서 조금 헤맸다.내가 알기론 최근엔 Gateway 역할을 하는 모뎀과 Router가 일체형인 구조가 많다고 들었는데, 찾아보니 기가 와이파이 시대에선 이게 또 분리되는 게 트렌드라고 한다.모뎀(Moderm)각 장치의 디지털 신호를 전송 가능한 아날로그 신호로 치환외부 인터넷 망(벽면의 케이블..
로그는 대체 왜, 언제, 어디서, 무엇을 남겨야 하는가?
·
Computer Science/Concept
💡 개인적인 고찰일 뿐 정답이 아닙니다.로그가 필요한 이유는 정말 많지만, 여기선 주로 디버깅 관점에서 분석하고 있습니다.혹시나 더 나은 아이디어나 다른 관점이 있다면, 부디 언제든지 댓글로 남겨주시면 감사드리겠습니다.제발.1. Introduction 📌 Interview👤: 로그는 언제 남겨야 하나요?🙋‍♂️: 아직 많은 고민 중에 있지만, 분명한 건 Presentation과 외부 액터와 I/O가 발생하는 시점, 그리고 영속화에 변경이 발생할 때입니다! 👤: 영속성이 수정될 때마다 남기면 로그는 어디서 남기나요? 전부 서비스 계층에서 남기나요? UPDATE 연산할 때마다 로그로 남길 건가요?🙎‍♂️: ...?(공격적인 질문은 아니었다. 다만, 갑자기 질문이 쏟아져서 굉장히 당황했다.) 이 한..