본문 바로가기

공부정리19

마틴 파울러 - 리팩터링의 절차 (리팩터링의 중요성) 아래 영상을 보고 내용을 정리한 글입니다. https://www.youtube.com/watch?v=mNPpfB8JSIU 내용에 대한 원문 : https://martinfowler.com/articles/workflowsOfRefactoring/ 리팩터링이 자주 필요한 순간은 언제인가? -> TDD 개발을 진행할 때, 새로운 기능을 추가하고 싶다면 실패할 테스트를 추가한다. 테스트가 빨간색으로 보일 때(실패할 때), 이 그림이 시작됨 (Red) 애플리케이션이 새로운 기능을 동작하도록 코드를 만들어서, 테스트를 초록색(성공)으로 만든다. (Green) 이 단계에서 개발자는 기능을 구현하는 것, 기능이 정상 동작하는 것이 우선이다. 이 기능이 큰 시스템에 어떻게 적용될 지는 깊게 고민하지 않는다. 세번째 단.. 2023. 1. 11.
[Infra] Terraform 입문 개발자가 매번 AWS 리소스를 관리하기 위해 AWS Console을 사용하는 것은 번거로운 일입니다. 코드로 AWS 리소스를 관리하는 방법이 있는데 Terraform 과 AWS CloudFormation 이 있습니다. 그 중 AWS CloudFormation에 대해서는 아직 학습을 못해서 차이점에 대해서는 학습 후 추가하겠습니다. 이 글에서는 Terraform의 입문을 중심으로 다루겠습니다. Terraform의 경우는 다양한 인프라 리소스를 관리할 수 있습니다. 예를들어 AWS, Azure, Google Cloud Platform .. 등등 운영체제는 Mac/OS를 기준으로 설명하겠습니다. 다른 운영체제에 대한 것은 공식 사이트의 튜토리얼에 친절하게 나와있습니다. Terraform 설치 우선 Terraf.. 2022. 2. 14.
[Web] 웹 애플리케이션의 발전 - CGI, Servlet 정적인 컨텐츠만을 제공하던 시기(CGI 도입 전) CGI라는 기술이 사용되기 전에는 정적인 컨텐츠만을 웹에서 제공했다. 고정된 내용의 html만 보여준다고 이해하면 된다. (CGI에 대한 자세한 설명은 다음 항목에서 할것이니 지금은 몰라도 괜찮다.) 따라서 사용자는 항상 같은 내용의 정보만 봐야한다. 즉, 아무리 유익한 정보를 공개해도 그 내용이 매번 같으면 사용자는 흥미를 잃는다. 매번 같은 컨텐츠니 사용자의 흥미는 더 빨리 떨어지고 결국 사용자가 감소하게 된다. 기업이 웹을 통해 제품이나 정보를 공개하거나 광고를 할 경우, 효과를 최대화하려면 조금이라도 더 많은 사람이 웹 컨텐츠를 열람하도록 유도해야한다. (개인이 만든 웹 컨텐츠도 더 많은 사용자가 봐줬으면 한다.) 사용자 역시 재밌는 컨텐츠를 보고.. 2022. 1. 16.
[네트워크] 웹 공격 기술 XSS, CSRF, SQL Injection 웹 공격 기술에 대한 개념이 항상 정리되지 않고 추상적인 느낌이다! 이번 글을 통해 개념을 확실하게 정리하고자 한다. HTTP 자체는 보안 상의 문제가 일어날 정도로 복잡한 프로토콜은 아니기 때문에 프로토콜 자신이 공격대상이 되는 경우는 거의 없다. 공격 대상은 HTTP를 사용하는 서버와 클라이언트 그리고 서버상에 동작하는 웹 애플리케이션이다. 웹 애플리 케이션에 대한 공격 패턴은 두 가지가 있다. 능동적 공격 수동적 공격 능동적 공격 능동적 공격은 공격자가 직접 웹 애플리케이션에 액세스해서 공격 코드를 보내는 타입의 공격이다. 이 타입의 공격은 서버 상의 리소스에 대해 직접 실행되기 때문에 공격자가 리소스에 액세스할 필요가 있다. 대표적으로 SQL 인젝션과 OS 커맨드 인젝션이 있다. 수동적 공격 수동.. 2022. 1. 6.
[네트워크] SSL과 HTTPS HTTP의 약점 HTTP는 다음과 같은 약점들이 있다. 암호화 하지 않은 평문 통신이기 때문에 도청이 가능하다. 통신 상대를 확인하지 않기 때문에 위장이 가능하다. 완전성을 증명할 수 없기 때문에 변조 가능 이 약점은 HTTP만이 아닌, 다른 암호화하지 않은 프로토콜에도 공통되는 문제이다. 그럼 위의 3 가지 항목들이 왜 약점이 되는지 하나씩 살펴보자 암호화 하지 않은 평문 통신이기 때문에 도청이 가능 HTTP를 사용한 Request나 Response 통신 내용은 HTTP 자신을 암호화하는 기능은 없다. 때문에 통신 전체가 암호화 되지 않는다. 즉, 암호화되지 않은 평문 통신으로 HTTP 메세지를 보내게 된다. 어째서 암호화되어 있지 않은 통신에 약점이 있냐 하면 TCP/IP는 도청 가능한 네트워크이기 .. 2022. 1. 5.