분류 전체보기

시작에 앞서 지난번에 MVC 패턴을 공부하다가 Flux 아키텍처에 대해 알게 되었고, 과연 페이스북은 MVC의 Massive View Controller라는 문제를 어떻게 해결했을까? Flux 공식 홈페이지 Flux에 대한 공식 홈페이지가 있었다! Flux에 대한 대략적인 설명, React를 사용한다면 어떻게 Flux아키텍처를 적용할 수 있는지, Github 레포지토리, 가이드 등이 나와있다. Flux | Flux Application architecture for building user interfaces facebookarchive.github.io Facebook이 찾은 MVC의 문제점 9년 전에 Facebook에서 발표한 Flux소개 영상이다. 이 영상을 요약해 보자면 초기에 MVC는 문제가 없..
· → Solver
이전 상황 이전 상황은 아래와 같았다. API를 사용하여 Solved.ac에 있는 유저정보를 가져오고 데이터 저장은 SwiftData를 활용하여 구현하기로 했다. 그리고 선택한 프로그램 아키텍처는 Clean Architecture이다. (잘 적용할 수 있을지 모르겠다...) 클린 아키텍처 무려 로버트 C. 마틴(엉클밥 또는 밥아저씨라고도 불리는...) 선생님이 2012년에 작성하신 글이다. (10년도 더 된...) 12년된 글을 보면서 현재의 가장 최신 SwiftUI, SwiftData를 사용하면서 적용하는 나라니... 참 작아진다. Clean Coder Blog The Clean Architecture 13 August 2012 Over the last several years we’ve seen a ..
내가 여러 가지 강의도 찾아보고, 많은 글도 읽어본 결과 MVC, MVP, MVVM은 UI를 어떻게 표현할지에 대한 디자인 패턴에 가깝다고 느꼈다. 그 이유는 맨 마지막에 써보도록 하겠다. 많은 곳에서 MVC, MVP, MVVM에 대해 말하는 것이 조금씩 다른데, 공통적으로 말하는 큰 본질 부분을 정리해 보려고 한다. 디자인 패턴은 추상적인 컨셉이나 아이디어에 가깝기 때문에 실제 구현은 일부사항이 달라질 수 있기 때문에 모두가 조금씩 다르게 설명하는 것 같다. 물론 코딩에 대한 경력이 너무너무 적기 때문에, 설명이 부족할수도 있고, 틀릴 수도 있지만 그래도 최대한 이런 글을 작성해보고 싶다는 생각이 들었다. 나중에 이 글을 보게 된다면 그때는 이런 생각을 했구나 알 수도 있고... 우선 시작은 이렇다. ..
· → Solver
프로젝트를 시작하기에 앞서 여러가지 세팅할 것들을 세팅했다. 앱 이름 우선 프로젝트를 시작하려면 프로젝트의 이름을 설정해야 파일도 만들고, Github Repository도 만들수 있어서 앱 이름부터 결정하게 되었다. Solved.ac 와의 연관성과 뜻을 고려하여 Solver 라는 간단한 앱 이름을 우선 설정했다. 앱 디자인 및 기획 앱 디자인의 경우 최대한 기본 컴포넌트를 활용하여 만들것이고, 어떠한 정보를 표시할지, 어떻게 화면에 표시할지는 개인프로젝트의 장점(?)을 살려 프로젝트 생성후 빠르게 기획할 예정이라 우선 프로젝트부터 생성하였다. 커밋 룰 레포지토리는 public으로 할 예정이고, 커밋은 gitmoji를 활용하여 영어로 작성하기로 했다. gitmoji의 경우 아래의 룰을 따르기로 했다. g..
· → Problems
문제 소개포도주 잔을 2잔 연속해서 마실수있고, 주어진 n개의 포도주의 양중에 최대로 마실수 있는 포도주의 양을 출력하는 문제이다. 문제 풀이와인을 마실경우를 O라고 생각하고 마시지 않을 경우를 X라고 생각하면 앞을 고려하지 않는다면 다음과 같은 경우가 최대가 될 것이다.하지만 여기서 문제가 있다. 1번 2번 케이스일 경우 앞에서 어떠한 케이스인지 모르기 때문에 함부로 2번 연속해서 마시거나 1번 마실수가 없다. 이미 앞에서 마셨을수도 있기 때문이다. 그렇다면 1번 2번 케이스의 X의 앞을 살펴보면 가장 최선의 선택을 했을 경우라는 것을 볼 수 있다. 그렇다면 이렇게 생각해보면 어떨까? 내가 생각하기에 다이나믹 프로그래밍은 "내가 계산한 값에 대한 믿음" 이다. 내가 앞에서 계산한 값이 무조건 최선이라고..
· → Solver
프로젝트 시작 과정 취준을 하면서 백준으로 알고리즘 문제풀이를 하고 있는 도중에 내가 푼 문제들 그리고 나의 티어를 아이폰으로 확인해보고 싶었다. 아이폰으로 나의 알고리즘 풀이 현황과 그것을 위젯으로 표현하고, 알고리즘 풀이에 좀 더 재밌고 동기부여 될 수 있는 앱을 만들어보는 건 어떨까? 하는 생각에서 프로젝트를 시작하게 되었다. 시장 조사(?) 궁금해서 앱스토어를 검색해 봤다. 1개의 앱이 있었지만 위젯기능이 없었고, 무엇보다 내가 앱을 만들어보고 싶었는데 마침 내가 생각한 기능이 있는 앱이 1개밖에 없었기 때문에 충분히 앱으로 만들어 볼 만하다!라는 생각을 가지게 되었다. 어떻게 하면 유저정보를 가져올 수 있을까? 어떻게 하면 나의 유저정보를 가져올 수 있을까? 하는 생각에 백준 API나 Solve..
앱에서 유저에게 어떠한 입력값을 받는 경우가 많다. 이메일이나 전화번호 형식을 입력받는다던지, 숫자를 입력받아야 하는 상황이라면 정규표현식을 활용하여 문자열을 검사하면 된다. 공식문서에는 NSRegularExpression을 활용하여 문자열을 검사하는 방법이 나와있다. 하지만 디테일하게 문자열을 검사할 것이 아니라면 좀더 간단하게 검사도 가능하다. NSRegularExpression | Apple Developer Documentation An immutable representation of a compiled regular expression that you apply to Unicode strings. developer.apple.com 아래와 같이 간단한 함수로 문자열 검사가 가능하다! strin..
· → Problems
문제 소개 1929번: 소수 구하기첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.www.acmicpc.net첫째 줄에 m, n이 주어지면 m이상 n이하의 자연수를 출력하는 문제이다. 문제 풀이2부터 시작해서 배수를 소거해나가는 "에라토스테네스의 체" 알고리즘을 사용했다. 배열을 편하게 index와 숫자를 동일시해서 Array(0...n)으로 배열을 초기화 해주었다. 그리고 어떠한 수의 배수가 된다면 1로 변경하였다. Int(sqrt(Double(n))) + 1 이 부분은 어떤 의미이냐면 2부터 n까지의 모든 숫자의 배수를 하나하나 대조해보는 것이 아니라 100인 경우 10까지만 생각하면 된다는..
Swift librarian
'분류 전체보기' 카테고리의 글 목록 (12 Page)