본문 바로가기

Dev Log29

Apple Login (Sign In With Apple) 구현하기 2020년 4월부터 소셜 로그인 기능 만으로 로그인이 되는 App은 애플 로그인을 지원해야 한다. https://developer.apple.com/app-store/review/guidelines/#sign-in-with-apple App Store Review Guidelines - Apple Developer App Store Review Guidelines Apps are changing the world, enriching people’s lives, and enabling developers like you to innovate like never before. As a result, the App Store has grown into an exciting and vibrant ecosyste.. 2020. 2. 23.
[Java] Interface vs Abstract class interface 오직 추상 method와 상수만을 멤버로 갖는다. (JDK 1.8부터는 static method와 default method도 가능) static method: 선택적으로 override할 수 있고, 객체에서도 호출되고 static으로도 호출 가능 default method: 선택적으로 override할 수 있음. 다중 구현 가능 abstract class 상속은 하나만 가능 추상 method를 가진 클래스 공통점 new 연산자로 인스턴스 생성 불가능 prototype만 있는 method를 갖는다. 사용하기 위해서는 확장/구현 해야 한다. 차이점 MINOR) abstract class는 완성된 method를 사용할 수 있지만, interface는 추상 method와 static, def.. 2019. 5. 7.
MSA, Microservice Architecture 장단점 Microservice Architecture pattern 하나의 프로젝트가 너무 커지면 (monolith) 내부 복잡도가 증가하여 유지보수 생산성이 떨어지고 상호 종속성이 높기 때문에 테스팅을 해야하는 양이 증가하거나 버그가 증가하고 따라서 continuous deployment가 거의 불가능에 가깝다 한 곳의 버그나 메모리 누수가 서비스 전체에 영향을 미칠 가능성이 있다. 애자일 개발 방법론에 적용되지 않는다. Microservice Architecture로 하게 되면 복잡도의 문제를 해결할 수 있다. 각 팀이 좀 더 독립적으로 해당 기능에 집중해서 개발할 수 있다. 모듈 단위로 배포가 가능하다. A/B testing이 가능하고 UI 변화에 빠르게 대응할 수 있다. CI/CD가 가능해진다. 여러 개.. 2019. 4. 30.
객체 지향 설계 원칙 SOLID 로버트 마틴이 정리한 객체 지향 설계 원칙 SRP(The Single Responsibility Principle): 단일 책임 원칙 모든 클래스는 하나의 책임만을 가지며 클래스는 그 책임을 완전히 캡슐화 해야 한다. 어떤 클래스나 모듈은 변경하려는 단 하나의 이유만을 가져야 한다. 도메인 객체와 웹 객체를 함께 쓰거나, 영속성 객체와 함께 쓰게되면 애플리케이션이 단순할 때는 상관이 없지만, 다른 객체의 변화에 따라 도메인 객체가 함께 변화될 수 있다. OCP(The Open Closed Principle): 개방 폐쇄 원칙 객체는 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다. '확장'은 기능 확장을 말하는 것. 의존성 주입을 통해서 기능을 확장. '변경'은 기존 로직의 변경을 말함. 불변객체를.. 2019. 4. 30.