전체 글 (142) 썸네일형 리스트형 [디자인 패턴] 1. 전략 패턴(Strategy Pattern) 전략/정책 패턴(Strategy Pattern)객체의 행위를 전략 또는 정책, 즉 상황에 따라 바꿔 끼워서 사용할 수 있도록 행위를 캡슐화하는 설계 패턴이다. 객체의 행위가 추후 변경되거나 추가될 가능성이 많을 때 효과적이다.오리 시뮬레이션 게임, SimUduck 어느 한 게임 회사에서 오리를 시뮬레이션 하는 게임을 개발 중이었는데, 다른 게임 개발사와 차별화 시키기 위해서 기존 오리들 객체 행위에 날아다니는 행위를 추가하기로 결정했다. MarllarDuck, RedheadDuck과 같은 모든 구상 클래스들에 fly()를 추가하는 건 효율적이지 않으니, 상속의 특징을 활용해서 부모 클래스인 Duck 클래스에 fly()를 추가하면, 아주 효율적으로 모든 오리 객체들이 날아다니는 행위를 할 수 있을 .. 프런트엔드 성능 최적화 가이드 React와 Vue를 사용해 프런트엔드를 개발하고 있지만, 코드를 어떻게 하면 잘 설계하고 개발할 수 있을까에만 집중해왔다. 하지만 사용자는 내가 작성한 코드를 볼 수 없을 뿐더러 관심도 없을 것이다.. 최근 B2C 서비스를 개발하면서 자연스레 사용자 경험에 대해 좀 더 고민해보게 되었는데, 웹 사이트의 페이지 로딩 시간을 단축시키거나 최대한 빨리 렌더링을 해서 사용자에게 보여주는 것이 개발자가 사용자에게 직접 와닿게 만족시킬 수 있는 방법이라고 생각이 들었고, 웹 사이트를 최적화하는 방법을 공부하려던 중 이 책을 알게 되었다. 그동안 미루고 지나쳐왔던 크롬 개발자 도구의 Lighthouse라던지 CSS 하드웨어 가속 프로퍼티 등 몰랐던 도구들과 스킬들을 자세히 알게 되었고, 프런트엔드 최적화 관련 인사.. WebRTC로 1:1 영상 통화 구현 배경서비스 요구사항에 영상 통화 기능이 추가되어 개발해야 했습니다. 별도의 라이브러리 없이 직접 구현할 수 있는 방법을 찾던 중 WebRTC라는 API를 알게 되었고, 추후 요구사항 변경이나 확장성을 고려한다면 WebRTC가 무엇인지, 그리고 관련 구성요소들이 어떤 게 있는지 정확히 알 필요가 있다고 생각해 공부한 내용을 기록하게 되었습니다.목차WebRTC란WebRTC로 결정한 이유WebRTC의 장단점WebRTC는 어떻게 동작할까Peer 연결Signaling ServerSDPICESTUN 서버TURN 서버무료 STUN / TURN 서버 URL 목록구현 WebRTC란WebRTC(Web Real-Time Commnication)는 Apple, Google, Microsoft, Mozila, Opera에서 지.. Push Notification 권한 허용 팝업이 뜨지 않을 때 개발 환경 Xcode 15 Target iOS: 12.1 테스트 기기: iOS 17 문제 앱을 빌드하고 실행하면 이전엔 푸시 허용 팝업이 잘 떴었으나, 어느 순간부터 안 뜨기 시작했고, device token을 가져오지 못함. Appdelegate.swfit func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { ... UNUserNotificationCenter.current().requestAuthorization(options:[.badge, .alert, .sound]){ (granted, error).. CocoaPods 설치 및 설정 Cocoapods? CocoaPods 공식 문서에 따르면 아래와 같이 소개하고 있습니다. CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 97 thousand libraries and is used in over 3 million apps. CocoaPods can help you scale your projects elegantly. CocoaPods는 Swift와 Objective-C Cocoa 프로젝트를 위한 의존성 관리자입니다. CocoaPods는 97,000의 라이브러리를 보유하고 있으며, 300만이 넘는 앱들이 이를 사용하고 있습니다. CocoaPods는 당신의 프로젝트의 규모를 키우는.. 2023 AWS Industry Week 날짜: 2023-10-11(수) 장소: 삼성동 코엑스 강연 세션들 강연 내용 1. 금융 및 핀테크: KB국민은행 클라우드 자원 / 비용 최적화 여정 2. 온프렘 -> 클라우드로 전환하기가 까다롭기 때문에 클라우드 전담팀 구성 1. 자격증 취득 2. 아키텍쳐를 변경하여 비용을 줄일 수 있었음 3. 마이데이터 등의 서비스 30개가 클라우드 사용 중 4. 비용이 증가하다가 하향 안정화됨, 어떻게? 1. 처음 클라우드로 구축할 때 오버사이징(규모를 너무 크게 잡음)하는 경향이 있음 1. 실제론 접속량이 많지 않음 2. 점진적으로 다운사이징 2. EKS 파드 축소 3. S3 1. 백업/불필요 파일 삭제 2. s3 종류 변경 4. 로그/모니터링 최소화 5. 동일 스펙 최신 세대 자원 사용 6. 요일별 가동 시간 조.. Flask를 NginX + uWSGI로 실행 Flask를 설치하고 바로 실행하면 개발 서버로 올라가기 때문에 운영 환경에서 사용하기엔 성능 상 무리가 있습니다. Flask를 실행했을 때 표시되는 Warning 메시지에 따르면 WSGI 프로토콜로 서버를 실행하길 권장하고 있으므로, Flask를 WSGI로 실행하는 과정을 기록하려 합니다. 아키텍쳐 WSGI와 uWSGI WSGI(Web Server Gateway Interface)는 웹 서버와 Python이 통신하기 위한 프로토콜을 의미하며, uWSGI는 이를 활용하여 요청과 응답 값을 Python이나 웹 서버가 이해할 수 있도록 변환해주는 서버를 의미합니다. NginX 없이 uWSGI 만으로도 서버를 운영할 수 있지만, 기존 웹 서버(NginX, Apache, ...)와 만들어진 목적이 다르므로, 비.. 도커 컨테이너(Ubuntu 16.04)에 python3.8, pip, flask 설치 개발환경 macOS: 14.0 docker: 24.0.2 ubuntu Image: 16.04 Docker 1. docker로 우분투 이미지 pull docker pull ubuntu:16.04 2. 우분투 이미지를 컨테이너로 실행 docker images docker run -itd -p 20000:5000 -p 20001:80 /bin/bash 3. 우분투 컨테이너에 접속 docker ps -a docker exec -it /bin/bash 파이썬 설치 1. 파이썬 실행에 필요한 라이브러리 설치 $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install -y build-essential checkinstall $ sudo apt-get in.. 이전 1 2 3 4 5 ··· 18 다음