본문 바로가기

분류 전체보기342

Vapor 서버 만들기 - Ubuntu+Swift+Vapor+Github(4) 할일: Ubuntu 에 있는 Vapor 프로젝트 GitHub 연동 깃헙에서 레포 하나 만들자 Ubuntu 서버에서 git 설정 해주자 sudo apt-get install git-core git config --global user.name TAEHYEONGKIM git config --global uuzaza@naver.com Vapor 프로젝트에 git init git init Remote 저장소 Local 저장소 연결 git remote add origin https://github.com/KimTaeHyeong17/vapor-server.git master에 push 를 위한 add와 commit 깃헙 리모트 레포에 변경사항 확인 이제 맥에서 이 레포를 Clone 하고 맥의 LocalHost 에서.. 2020. 8. 16.
GCP - 피땀흘린 서버 인스턴스 이미지로 백업하기 추가적으로 작업하기 전에 성공한 서버 이미지 만들어 놓고 싶다. 이제 하다가 뻑가면 VM 밀어버리고 이미지로 인스턴스 생성하면 된다. 가격 2020. 8. 16.
GCP - 무료 Vapor 서버 만들기 - Ubuntu+Swift+Vapor(3) ----- 이번 포스팅에서는 Hello World 성공했습니다. ------ 저번 포스팅까지 한것 GCP 무료 인스턴스 생성 (Ubuntu18.04) Ubuntu Swift5 환경 구축 Swift 컴파일되는거 확인 Vapor 프레임워크 설치 Vapor Build & Serve 확인 localHost 에서 Run 근데 VM 외부 ip 로 접속 했을 때 connection refused 가 뜬다. 생각해보니 Spring boot 서버 세팅할 때 순서가 로컬에서 스프링부트 init 로컬에서 API 개발 깃 리모트 레포에 푸쉬 클라우드 서버에 아파치2, Nginx 설치 해당 깃 풀 받기 뭐 서버 돌리기 였던걸로 기억난다. 문제점은 Vapor 를 서버에서 돌렸을때 돌아가는 하는데 외부 접속을 위한 단계가 빠진 것.. 2020. 8. 15.
코딩배우기와 프로토타이핑 고민상담소 지금 재밌는데 어려워질까 걱정이에요 걱정은 커리큘럼과 강사님이 처치했으니 안심하라구 개발 잘 하는 분들 많던데 전 디자인만 하게 되는거 아닌가요? 모두 코딩을 해야합니다. (결론적으로) 크림 (한정판 스니커즈 판매 플랫폼) 인원 7명이 6개월 동안 개발함 사업기획/마케팅 리드/디자인 (PM) (디자인50프로) 서버1 안드1 안드(서버) iOS 2 결론은 디자인은 한번 픽스되면 많이 변경되지 않는다. 앱개발하는데 개발자가 많이 필요하다. 앱 아이디어를 낼때 구현 가능성도 생각해야 하나요? (서버, AR, 인공지등 etc) 해도됩니다. (팀원을 믿으세요) 추후에 팀회의도 할것이기 때문에 일단 아이디어는 풍부하게 코딩 배우기1 - 방향을 바꿔서 한칸만 앞으로가서 보석이 계속 있는 상태로 만들었기 때.. 2020. 8. 15.
GCP - 무료 Vapor 서버 만들기 - Ubuntu+Swift(2) ----- 주의: 삽질 기록이니 따라하지 마세요 ------ Vapor 다시 시도해보겠다. 일단 새마음 새뜻으로 vm 새로 만들어서 Swfit 설치까지 하겠다. 이전에 했던 Swift 까는 방법은 sudo apt-get update wget https://swift.org/builds/swift-5.2.5-release/ubuntu1804/swift-5.2.5-RELEASE/swift-5.2.5-RELEASE-ubuntu18.04.tar.gz tar xzf swift-5.2.5-RELEASE-ubuntu18.04.tar.gz sudo mv swift-5.2.5-RELEASE-ubuntu18.04 /usr/share/swift echo "export PATH=/usr/share/swift/usr/bin:$.. 2020. 8. 15.
GCP - 무료 Vapor 서버 만들기 - Ubuntu+Swift(1) ----- 주의: 삽질 기록이니 따라하지 마세요 ------ 필요할때 쓸 수 있는 서버가 있으면 좋겠다 생각을 했다. 그런데 대표적인 AWS의 경우 1년 마다 새로 회원가입을 해야되서 귀찮았다. 그런데 오라클 클라우드 평생 무료 티어가 있다길래 써보려다 하루를 날리고 계정은 로그인도 안되고 뭐 컨택 이메일은 답장도 안오고 비밀번호 변경 메일도 안오고 화가나서 때려치고 다른걸 검색해보니 GCP 도 1년이 아닌 평생 무료 사용이 가능했다. 오늘은 무료 VM에다 Swift 서버 프레임워크인 Vapor 로 Rest 서버를 세팅하려 한다. GCP 무료 VM 세팅 참고한글 구글 클라우드 프리티어 이후 항상(평생) 무료 사용하는 방법 예전에 구글 클라우드 프리티어를 1년간 사용했었는데요. 그리고 나서 AWS를 프리티.. 2020. 8. 14.
Design Pattern - Builder Pattern Builder Pattern 복잡한 Object 에 대해 initializer에서 필요한 모든 input을 입력하지 않고 단계별로 input을 줄 수 있게 한다. 빌더 패턴은 3가지 부분으로 나눠진다. director: input 을 accept 하고 builder 와 coordinate 한다. 대부분 view controller에 의해 사용되는 view controller 나 helper class 가 담당한다. product: 생성하기 힘든 복잡한 객체이다. struct 나 class 가 될 수 있고 대부분 model 역할이다. 그런데 use case 에 따라 아무 타입이나 다 될 수 있다. builder: 단계별로 input을 받고 product 의 생성을 처리한다. 대부분 class 이고 refe.. 2020. 8. 9.
Design Pattern - Observer Pattern Observer Pattern Observer 패턴은 하나의 Object 가 다른 Object의 변화를 관찰 할 수 있는 패턴이다. Apple 은 이 패턴을 Swift5.1에 언어수준에서 RxSwift 와 비슷한 Publisher 와 Combine 프레임워크를 통해서 공식적으로 지원하는 패턴으로 추가하였다. 패턴은 세가지 타입을 포함한다. subscriber: 변경된 사항에 대해 업데이트를 받는 관찰자 object publisher: observable(관찰가능한) object, 변경되면 업데이트를 subscriber 에게 알려줌 value: 객체의 변경된 값 Observer Pattern - 언제 사용해야 할까 다른 객체의 변경사항을 알고 싶을때 MVC 패턴에서 주로 쓰인다. Subscriber: vi.. 2020. 8. 9.
Design Pattern - Memento Pattern Memento Pattern 메멘토 패턴 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 메멘토 패턴(memento pattern)은 객체를 이전 상태로 되돌릴 수 있는 기능을 제공하는 소프트웨어 디자인 패턴이다. (롤백을 통한 �� ko.wikipedia.org 메멘토 패턴은 Object를 저장하거나 불러오게 할 수 있다. 3가지 부분으로 나눠진다. Originator: 저장되어야 할 객체이다. memento: 저장된 상태를 나타낸다. CareTaker: - save: careTaker는 originator에게 저장을 요청하고 memento 로부터 응답을 받는다. - restore: memento를 유지하는 역할을 담당하며 추후에 originator .. 2020. 8. 9.
Design Pattern - Singleton Pattern Singleton Pattern - 싱글톤 패턴 class 가 하나의 instance 만 가지도록 제한한다. 모든 class 에 대한 reference 는 하나의 같은 class 에 대한 instance를 참조한다. (Single) iOS 앱 개발에서 겁나 자주 쓰이고 Apple 이 광범위하게 쓴다. 다른 instance 를 생성하는 shared singleton instance를 제공하는 Singleton Plus 패턴도 자주 쓰인다. Singleton Pattern 언제 사용해야 할까? 하나 이상의 동일 class 의 instance 를 가지게 되면 문제가 생길때 로직상으로 하나 이상의 동일 class 에 대한 instance 를 가지면 안될때 Singleton Plus Pattern 언제 사용해야 .. 2020. 8. 9.
[8월1주차-토] 수업 오리엔테이션 수업 안내 커리큘럼 코딩배우기 1, 2 AP CS Principles iOS HIG, AppStore Review Guideline 프로토타이핑 App Dev with Swift 커리큘럼 밖 시도해볼 것들 ML: CreateML, CoreML SwiftUI AR 과정의 전체적인 내용 Everyone can code Everyone Can Code Everyone Can Code is a new approach to coding that gives everyone the power to learn, write and teach code. www.apple.com 계산적 사고 분리해결: 큰 문제를 쪼개서 해결하는 훈련 추상화: (제일 중요한듯) 일상적인 사례들을 코드로 표현하는 것 패턴인식: 문제가 일어나는.. 2020. 8. 8.
LeetCode - Detect Capital Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. leetcode.com 문제 Given a word, you need to judge whether the usage of capitals in it is right or not. We define the usage of capitals in a word to be right when one of the following cas.. 2020. 8. 7.
Design Pattern - Strategy Pattern Strategy Pattern Strategy Pattern 은 런타임에 set 되거나 switch 될 수 있는 interchangeable 한 객체의 집합을 정의한다. Who (Object Using a Strategy): interchangeable 해야 하는 객체가 담당할 수 있다. iOS 앱에서 이 부분은 view controller 가 담당한다. What (strategy protocol): 모든 strategy 가 반드시 구현해야할 메소드를 정의한다. How (Strategies): strategy protocol 을 준수하는 객체들이다. 언제 사용해야 할까 두개 이상의 다른 behavior이 interchangeable 해야 할 때 사용한다. 이 패턴은 delegation pattern 과 .. 2020. 8. 7.
iOS: Repository pattern in Swift [출처] iOS: Repository pattern in Swift A design pattern to abstract data sources from your application medium.com Repository Pattern 리포지토리 패턴은 디자인 패턴으로 데이터의 추상화를 제공하여 어플리케이션이 추상화된 인터페이스로 작업할 수 있게 해준다. 즉 데이터 출처에 관계없이 동일한 인터페이스로 어플리케이션이 데이터를 사용할 수 있게 해준다. 장점으로는 결합도를 낮출 수 있다. 도메인 객체를 persistence ignorant 하게 할 수 있다. 정의된 인터페이스를 구현하는 mock에 DI 할 수 있으므로 테스팅하기 쉽다. 글에서 작성된 예시를 보자면 Tiendo iOS 앱에서 리포지토리 패턴을 .. 2020. 8. 7.
🎓 졸업과제 - Flask Server, Mock Tensorflow Model 목표 질문을 입력받을 수 있는 웹페이지에서 질문을 입력한다. 해당 질문을 일단 서버로 보내 모델에서 prediction 했다고 가정하고 응답을 웹에 표시한다. *파이썬 프로젝트에 Flask 를 추가 했었고 templates 패키지에 필요한 HTML 코드를 작성 해놓은 상태이다. HTML 코드 더보기 Table 제출하기 표 출력 Question 질문입력해주세요 : Answer 원문 출력 Flask 코드 더보기 from flask import Flask , render_template, request app = Flask(__name__) @app.route('/') def index(): return render_template('tableView.html') @app.route('/handle_data'.. 2020. 8. 7.
프로그래머스 - N으로 표현 코딩테스트 연습 - N으로 표현 programmers.co.kr 문제 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solution 함수를 작성하세요. 제한사항 N은 1 이상 9 이하입니다. number는 1 이상 32,000 이하입니다. 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에서 나머지는 무시합니다. 최솟값이 8보다 크면 -1을 retu.. 2020. 8. 6.
Design Pattern - Delegation Pattern Delegate: 대리자 Delegation Pattern 은 한 객체가 다른 Helper 객체를 통해 데이터를 전송하거나 특정 업무를 대신 할 수 있게 해주는 패턴이다. (Delegation Pattern enables an object to use another "Helper" Object to provide data or perform a task rather than do the task itself) Delegation Pattern 의 3가지 부분 Object needing a delegate: delegating object 라고도 한다. Delegate 를 가진 객체를 말하며 delegating 객체가 delegate 를 retain 할때 발생할 수 있는 retain cycle 을 피하기 .. 2020. 8. 6.
[앱기획] Skeuomorphism (스큐어 모피즘) 형태는 기능을 따른다. 루이스 설리반, 건축가 1896 디지털 스큐어 모피즘 아날로그적인 향수를 불러일으켜 사용자에게 현실세계와 대응하는 일을 환기시키는 디자인 iOS7 이전의 디자인 컨셉 그리스어원 스큐어:용기 - 모프: 형 원래 필요에 의해 만들어진 뒤 장식으로 남아 있는 것 기능과 무관하게 아날로그적인 향수를 자극하기 위한 장식요소 X4. GUI 이해하기— 스큐어모피즘과 플랫디자인 이번에는 GUI의 그래픽적 방향에 대해 살펴보려고 합니다. medium.com 디자인적인 요소들이 목표로 하는 행위에 대해 반드시 필요한 것인가? 를 생각해 보자 iBooks 의 경우 페이지를 넘길 때 책장이 넘어가는 듯한 애니메이션을 볼 수 있다. 과연 이것이 책의 컨텐츠를 읽는 목표에 대해 도움이 되는 건지 방해가 되.. 2020. 8. 4.
[앱기획] #ADS #페르소나 #멘탈모델 ADS - App Definition Statement concise, concrete declaration of an app's main purpose and its intended audience. ADS 는 결국 App 서비스를 한줄로 설명하는 것. 모든 애플의 앱서비스는 ADS 가 정의되어있다. App Definition matthewbischoff.com 주로 정의에는 3가지가 포함된다. 누구를 위한 (target audience) 어떤 기능의 어떤 차별점을 가지는 예를들어 누구: 예를들어 대학생을 타겟으로 할때 좀더 구체적으로 입학생 등의 구체적인 타겟을 정하고 그 범위를 늘려가는게 좋다. 기능: 예를들어 가계부인데 돈을 펑펑쓰면 장미가 시들거나 차트 등으로 보여주는 등의 구체적인 기능 차별점.. 2020. 8. 4.
Programmers - 타겟 넘버 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 문제 문제 설명 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 targ.. 2020. 8. 3.
Reusable Horizontal UICollectionView in UITableView 해커톤을 위해 토이 프로젝트를 하고 있다. 디자인이 슬슬 나오기 시작한다. 오늘 조진 GUI 화면 구현이 조금 복잡하여 블로그에 정리해보려 한다. 기록하려는 것이기 때문에 설명 불친절 주의☠️ Reusable Horizontal UICollectionView in UITableView 라는 뜻은 아래의 스크린 샷과 같은 UI를 내가 표현해본 것이다. 큰틀로 UITableView를 유지하면서 중간중간 Cell 에 Horizontal 하게 Scroll 될 수 있는 UICollectionView 를 넣어주는 것이다. 처음엔 그냥 UIScrollView 에 UIVIew로 나눠서 하나씩 UICollectionView 를 넣으려 했다. 문제는 생각보다 저 UICollectionView 가 똑같이 사용되는 UI 가 .. 2020. 8. 3.