모바일 앱개발204 URLSession에 대하여 알아보기 TIL220323_aboutURLSession 포스팅기반 → https://techblog.woowahan.com/2704/ 서론 서비스를 개발하는 것에 있어 API를 호출하고, 데이터를 받는 것은 매우 중요하다. API를 사용하지 않는 App은 한정된 정보만 가지고 있을 수 밖에 없다. 이번 글에서는 Swift를 사용해서 HTTP통신을 통해 서버와 통신하는 법을 알아보겠다. 선행 지식 📌 HTTP통신 (미정리) 📌 URLSession과 URLSessionTask 📌 탈출클로저 📌 Codable 📌 Optional Binding 기본적으로 서버와 통신하기 위해서는 아래 두가지 방법을 사용할 수가 있습니다. URLSession , URLRequest를 이용한 요청방식 Alamofire라이브러리를 이용한 요.. 2022. 3. 23. MVC의 한계 이 게시글은 공부한 내용을 정리한 것으로 수익창출을 하지않습니다. 역할이 명확히 구분된다면 좋겠지만 실상은 그렇지 못하다. 1. Apple의 MVC는 View와 Controller가 너무 밀접하다. Apple의 MVC에서는 ViewController라는 이름에서도 볼 수 있듯이 View와 Controller가 굉장히 밀접하게 연결되어있다. ViewController는 Controller의 역할뿐만 아니라 View의 life cycle에도 관여하고 있는 것이 현실이다. 이때문에 Model은 분리하여 테스트를 할 수 있어도 View와 Controller는 서로 강하게 연결되어있어 테스트가 어렵다. 2. 뷰, 모델에 맞지 않는 모든 비즈니스 로직들은 Controller에 들어가게 된다. 모델이나 뷰에 넣기 애.. 2022. 3. 22. 비즈니스 로직 비즈니스 로직 정의 위키백과를 살펴보면 아래와 같이 정의되어있다. 비즈니스 로직 (Business logic)이란 컴퓨터 프로그램에서 실세계의 규칙에 따라 데이터를 생성·표시·저장·변경하는 부분을 일컫는다. 유저가 바라는 결과물을 올바르게 도출하기 위해서 꼭 필요한 과정이기에 프로그래밍에서 빠질 수 없는 요소이며, 응용 프로그램의 핵심이 된다. 비지니스 로직은 유저가 바라는 결과물을 코드로 옮기므로 코드가 자주 변경되므로, 코드 품질도 매우 중요합니다. 비지니스 로직이 정리되지 않고 이곳 저곳 산재 배치되면, 코드 관리가 어려워지고, 개발을 어렵게 하는 요인이 될 수 있다. 그로 인하여 생산성, 품질등이 저하 된다. 비즈니스 로직은 정말 중요하지만, 유지보수 와 확장성을 고려한 코딩을 하기란 쉽지 않습니.. 2022. 3. 21. TIL 로컬라이징, 써드파티 1. 로컬라이징 현지화, 그 나라의 실정에 맞추어서 수정하는 것을 로컬라이징 이라고한다. let us: Go! 세미나 내용 중 앱 내 디자인에 있어, 탭바의 레이블이 사라질 경우 장점은 무엇일까 에 대하여 → 네이버 웹툰 앱 탭바 하단에 레이블을 생성해두면 해당 나라에서만 사용하는 것은 상관없지만 여러 나라를 타겟으로 출시하는 경우, 각 나라에 맞게 번역을 해야하는 상황 발생 페이스북 같은 경우는 레이블을 없앤 상태 탭바 하단의 레이블이 사라질 경우, 로컬라이징이 쉬움 본격적인 로컬라이징은 나중에 정리 https://zeddios.tistory.com/368 2. 써드파티(Third party) 써드파티의 위키백과 설명은 아래와 같다. "기본적으로 '제 3자'를 뜻하는 단어. 이 제 3자가 어떤 분야의 .. 2022. 3. 19. 로그를 출력할 때 사용하는 함수들 Swift에서 콘솔창에 로그 쉽게 출력하는 방법이다. 보통 로그에 날짜, 파일명, 메소드명, 라인을 작성하려면 아래와 같이 작성한다. print("\\(Date()) \\(#file.components(separatedBy: "/").last ?? "") \\(#function) \\(#line) 로그 내용") 함수설명 Date() : → 날짜 출력 #file : 파일 출력 → #file만 사용하는 경우에는 파일이 있는 디렉터리가 모두 출력 components(separateBy:)함수를 사용 .last → 마지막 위치 #fuction 현재 메소드명 #line 현재 라인 출력 위와같이 작성하면 콘솔창에 이렇게 출력된다. 출력결과 #file만 사용 하는 경우 2020-10-11 16:31:33 +0000 .. 2022. 3. 18. error - Command CompileSwiftSources failed with a nonzero exit code Command CompileSwiftSources failed with a nonzero exit code 이슈 발견 보고서 📌 발견일 / 해결일 22.03.18 / 22.03.18 📌 이슈사진 📌 상황설명 학습중 발견 → 이름이 같은 파일이 있는 경우 .swift file중 이름이 같은 파일이 있어서 발생함 Swift 버전 에러 - 참고 https://shovel-geek.tistory.com/74 📌 Solution 아래 참조 DriveData 를 삭제 cmd+shift+k를 해주는 작업을 진행한 후 파일 이름만 바꿔주고 해결! → 이것 먼저 해볼것 2022. 3. 18. 디자인패턴 - MVC MVVM 디자인패턴 "디자인 패턴은 소프트웨어를 개발할 때 발생하는 다양한 문제에 대한 재사용 가능한 템플릿 해결방법!" 즉, 어떤 실질적인 코드가 아닌 아이디어라고 할 수 있다. 패턴 이름 해결할 문제, 해결 방법, 결과를 설명, 해당 디자인을 설명하고 공유하기 편하기 때문 해결할 문제 해당 패턴이 어떤 문제를 해결할 때 사용할 것인지 해결 방법 디자인 패턴은 다양한 상황에 적용될 수 있는 템플릿과 같기 때문에 해결 방법은 특정 디자인이나 구현을 설명하지는 않고, 추상적인 설명과 요소를 제공하여 해결 방법을 제시 결과 소프트웨어에서는 동일한 기능을 구현할 때 메모리, 속도 등을 비교하여 어느 코드가 더 나은 성능을 보이는지 비교할 수 있다. 또한 디자인 패턴을 사용하는 이유인 재사용성도 평가 항목에 포함된다. .. 2022. 3. 16. View뜯어보기 (1) View View & Window View란 앱의 사용자 인터페이스를 구성한다. View는 UIView의 인스턴스거나 UIView 하위 클래스의 인스턴스이다. 자신을 어떻게 그리는지 알고 있다. 터치와 같은 이벤트들을 처리할 수 있다. 뷰 계층 구조상에 존재한다. 뷰 계층 구조의 루트는 앱의 윈도우 이다. iOS 앱은 모든 View 들의 컨테이너 역할을 하는 UIWindow 인스턴스 를 가지는데 이는 AppDelegate에 정의되어 있으며(SceneDelegate를 사용하는 경우는 SceneDelegate에 정의) UIWindow 는 UIView 의 하위 클래스 이므로 Window 는 그 자체가 View라고 할 수 있다. 최초의 window는 스토리보드를 사용할 때는 자동으로 생성이 되지만 코드로 구현할.. 2022. 3. 15. View의 계층구조 View의 계층구조 1. view의 계층구조는 superView, subView, siblingView 로 구성 view의 계층구조는 superView, subView, siblingView 로 특정되며 이는 drawing순서를 결정짓는다. superView와 subView의 관계에서는 superView가 우선해서 그려진다. 동일한 superView 내부에 여러 siblingView가 있다면 먼저 addSubView가 된 순으로 drawing된다. siblingView가 겹쳐질 때는 , 먼저 drawing된 View가 가려진다. 그림출처: KxCoding 2. superView와 subView의 계층 구조에 따른 몇가지 특징 superView를 제거하면 subView도 함께 제거된다. superView의.. 2022. 3. 14. error - Extensions must not contain stored properties 이슈 발견 보고서 📌 발견일 / 해결일 22.03.10 📌 이슈사진 📌 상황설명 extension에 깔끔하게 정리하고자 관련 변수를 같은 위치에 선언했더니 발생했다. 📌 Solution extension에는 저장프로퍼티를 넣을 수없고 연산프로퍼티만 사용가능함 변수 선언부에 따로 설정하거나, extension에 꼭 넣어야한다면 연산프로퍼티로 선언할것 참고 → https://zeddios.tistory.com/263 2022. 3. 13. 이전 1 ··· 5 6 7 8 9 10 11 ··· 21 다음 반응형