전체 글34 객체 지향 설계 원칙 SOLID 로버트 마틴이 정리한 객체 지향 설계 원칙 SRP(The Single Responsibility Principle): 단일 책임 원칙 모든 클래스는 하나의 책임만을 가지며 클래스는 그 책임을 완전히 캡슐화 해야 한다. 어떤 클래스나 모듈은 변경하려는 단 하나의 이유만을 가져야 한다. 도메인 객체와 웹 객체를 함께 쓰거나, 영속성 객체와 함께 쓰게되면 애플리케이션이 단순할 때는 상관이 없지만, 다른 객체의 변화에 따라 도메인 객체가 함께 변화될 수 있다. OCP(The Open Closed Principle): 개방 폐쇄 원칙 객체는 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다. '확장'은 기능 확장을 말하는 것. 의존성 주입을 통해서 기능을 확장. '변경'은 기존 로직의 변경을 말함. 불변객체를.. 2019. 4. 30. 화이트박스 vs 블랙박스 White Box는 사실 투명 박스에 가까운 것 같다. Black Box는 말그대로 안이 보이지 않는 박스. 두 단어는 테스트 방법론에서 자주 거론되는데, 컴포넌트를 지칭할 때도 쓰이는 것 같다. Black Box Test는 1. 내부 구조가 어떻게 되어있는지 확인할 수 없다. 2. 결과물 상태를 보고 요구사항이 충족하는지 확인한다. 3. 테스트 비용이 많이 든다. 왜냐면 어떠한 결과가 나올지 예측할 수 없기 때문에 test case를 많이 시도해보아야 하기 때문이다. White Box Test는 1. 소스코드 형태로 소프트웨어를 테스트한다. 2. 테스트 코드는 White Box Test에 해당하는 것 같다. Unit Testing, Integration Testing, System Testing이 해당.. 2019. 4. 17. [Swift] Automatic Reference Counting 내용 요약 Official Document:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html ARC. Automatic Reference Counting. ARC는 class의 인스턴스가 할당될 때부터 메모리 상태를 추적한다. (struct, enum은 해당하지 않는다.) class 내의 property, constant, variables가 더 이상 사용되지 않을 때 메모리를 해제하게 된다. 평상시에는 별다른 조취를 취하지 않아도 메모리를 해제하게 되지만, 두 개 이상의 인스턴스가 서로를 참조하고 있을 경우(strong ref.. 2018. 3. 16. [AWS RDS] Django + Postgresql + RDS 설정하기! 서비스를 하면서 DB의 트래픽이 많아지고 관리를 수월하게 하기 위해서 AWS RDS를 쓰곤 한다. EC2에서 사용할 때 보다 DB만 따로 스케일링이 가능하다거나 스냅샷을 원할 때마다 찍을 수 있다거나, 백업이 용이하다는 장점이 있기 때문이다. 이번에는 EC2 자체의 내장 Postgresql에서 RDS로 마이그레이션 해보았다. 1. RDS 등록 POSTGRESQL이 장고에서 가장 많이 호환이 된다고 해서 POSTGRESQL을 쓰고 있습니다만, POSTGRESQL 공식 문서가 좀 더 친절했으면 하는 바람입니다. FREE TIER로 하는 것을 체크하면 선택할 수 있는 사항들이 제한됩니다. 이러이러한 과정을 거치면 등록을 마치게 됩니다. 1~2분 기다리면 RDS 인스턴스의 상태가 available이 됩니다. 2.. 2017. 6. 9. [Django] Gmail SMTP 보내기 이메일로 회원가입을 하거나 할 때, 해당 메일이 실제로 쓰이고 있고 해당 유저가 사용하고 있는지를 인증하기 위해서 인증 메일을 보내곤 한다. 이를 SendGrid나 AWS SES 등의 서비스를 통해서 할 수도 있지만, G-mail을 통해서 작은 규모의 웹사이트에서도 사용할 수 있다. 먼저, SMTP를 사용하기 위해서 지메일에서는 두 가지를 설정해줘야 한다.1. IMAP 사용함 설정 https://support.google.com/mail/answer/7126229?hl=ko&rd=3&visit_id=1-636281811566888160-3239280507#ts=16650182. 보안 수준이 낮은 앱 허용 https://support.google.com/accounts/answer/6010255두 가지 설.. 2017. 4. 19. [Django] Django+uWSGI에서 os.environ variable 설정하기 Django 프로젝트를 production 서버로 올려놓을 때는 DB의 패스워드나 Django의 SECRET_KEY 등을 감춰둘 필요가 있다. 이를 위해서는 돌아가고 있는 서버 환경에 변수를 설정해두면 된다. 본래 아마존 EC2와 같은 Linux 환경에서는 터미널에서는 다음과 같이 하면 변수를 설정할 수 있다. export VAR_NAME=HELLO_WORLD위와 같이 하거나 아니면 이를 .bashrc 파일에 적어놓고 source .bashrc를 하게 되면 같은 상태로 쓸 수 있게 된다. (확인은 printenv로 하면 된다.) 하지만, uWSGI에서 쓰게 된다면 얘기가 달라진다. http://stackoverflow.com/questions/16792698/os-environ-in-django-sett.. 2017. 4. 18. 이전 1 2 3 4 5 6 다음