전체 글
-
[iOS] FMDB를 사용한 최근 장소 검색 기능 구현iOS/EARLY BUDDY | iOS 2020. 8. 15. 23:39
안녕하세요 :) 저번 포스팅에서는 FMDB를 사용한 간단한 것들을 알아봤는데요. 얼리버디에 그대로 도입하기에는 몇 가지 이슈들이 있었습니다. 검색어를 저장할 때 중복 체크 기능이 없음 검색했던 이력이 있는 주소들은 테이블 뷰 제일 상단으로 올라오지 않음 최근 검색한 순서대로 테이블 뷰에 뜨지 않고 데이터베이스 테이블에 저장된 순서대로 뜸 위의 세 가지들이 고쳐야 할 이슈들이었습니다. 이제부터 이슈들을 차곡차곡 고쳐나가 보겠습니다! 검색어 저장 시 중복 체크 기능 제가 구현해야 하는 기능은 중복된 검색어가 들어왔을 경우에 제일 상단으로 텍스트가 올라가야 하는 것입니다. 그래서 저는 테이블에 Location과 Time을 insert 해주고, 만약 중복된 텍스트가 들어올 경우에는 Time 부분만 update ..
-
[iOS] FMDB 사용하기iOS/EARLY BUDDY | iOS 2020. 8. 14. 15:58
안녕하세요 :) 오늘은 얼리버디 어플에 최근에 검색한 주소 저장 부분을 FMDB를 사용해서 구현해보려고 합니다. FMDB란? FMDB는 SQLite를 Object-C로 감싼 것입니다. 즉, XCode에서 코드로 SQLite를 사용할 수 있게 해주는 것입니다. FMDB 사용 설정 우선, FMDB Github에 들어가면 Cocoapod으로도 설정을 할 수 있다고 합니다. 저는 클론 받은 후에 fmdb 폴더를 직접 옮긴 방법을 사용했습니다. 첫 번째로 프로젝트에 프레임워크를 추가해줍니다. 프로젝트의 Build Phases -> Link Binary With Libraries에 + 버튼을 누르고 sql을 검색하면 sqlite가 두 개가 검색됩니다. 둘 중 아무거나 Add 해주시면 sqlite 프레임워크가 추가됩..
-
[Spring] Spring IoC/DI ContainerServer/Spring 2020. 8. 11. 17:18
안녕하세요 :) 이번에는 스프링 프레임워크에서 가장 중요하다고 여겨지는 컨테이너와 IoC, DI에 대해 알아보겠습니다. Container 컨테이너는 인스턴스의 생명 주기를 관리하며, 생성된 인스턴스에게 추가적인 기능을 제공합니다. (ex.Servlet을 실행해주는 WAS는 Servlet 컨테이너를 가지고 있다.) 개발자가 클래스를 작성하기는 했지만, 실제로 메모리에 올리고 실행하는 것은 컨테이너입니다. 컨테이너는 동일한 클래스에 해당하는 요청을 받으면, 또 반복하여 메모리에 올리지 않고 기존에 메모리에 올라간 클래스를 실행하여 그 결과를 웹브라우저에게 전달합니다. IoC (Inversion of Container) 컨테이너가 개발자가 구현한 코드 대신 객체의 제어권을 갖고 있어 IoC, 즉 제어의 역전이..
-
[Spring] Spring이란?Server/Spring 2020. 8. 11. 13:31
안녕하세요 :) 본격적인 개발에 들어가기 전에 Spring framework에 대해서 알아야 할 필요성을 느껴서 공부해봤습니다. Spring Framework란? 엔터프라이즈급(대규모) 애플리케이션을 구축할 수 있는 가벼운 솔루션입니다. 원하는 부분만 가져다가 사용할 수 있도록 모듈화가 잘 되어있습니다. IoC 컨테이너입니다. 선언적으로 트랜잭션을 관리할 수 있습니다. 완전한 기능을 가진 MVC Framework를 제공합니다. AOP를 지원합니다. 도메인 논리 코드와 쉽게 분리될 수 있는 구조로 되어있다. 스프링 프레임워크는 약 20개의 모듈로 구성되어 있으며 필요한 모듈만 가져다 사용할 수 있습니다. 메시징 (Messaging, spring-messaging) 스프링 프레임워크 4는 메시지 기반 애플리..
-
[Spring] Maven에 대해 이해하기Server/Spring 2020. 8. 11. 05:00
안녕하세요 :) 이번에 동아리 지인들과 Spring 스터디를 진행하게 되었는데요. 스프링을 시작하려고 보니까 Maven이라는 언어가 굉장히 많이 등장하고 있더라고요. 그래서 스프링 시작 전에 간단하게 Maven 구조, 프로젝트는 어떤 것인지 공부를 해봤습니다! Maven이란? 우선 Maven을 이해하기 위해 CoC라는 개념이 등장합니다. CoC는 Conversion over Configuration입니다. 배치의 관습? 정도로 직역할 수 있을 것 같은데 CoC란 직역과 비슷하게 일종의 관습을 말합니다. 프로그램을 구성할 때 소스파일은 어떤 위치에 있어야 하고, 컴파일된 파일들은 어떤 위치에 있어야 하는지 미리 정해놓은 것입니다. 간단하게 한 줄로 말하면, Maven은 자바 프로젝트의 Build를 자동화해..
-
iOS의 데이터베이스 비교 (SQLite, Core Data, Realm)iOS/iOS 2020. 8. 7. 12:12
안녕하세요 :) 얼리버디 프로젝트에서 내장 데이터베이스를 사용할 일이 생겨서 찾아보던 중 iOS의 대표적인 데이터베이스에 대해 비교/정리를 하게 되었습니다! 바로 시작할게요 ~! Realm Realm이란, 오픈 소스 라이브러리로 모바일에 최적화된 데이터베이스 라이브러리입니다. (iOS와 Android를 위해 만들어졌습니다.) 데이터 컨테이너 모델을 사용하며 데이터 객체는 Realm에 객체로 저장됩니다. 즉, 객체 중심의 데이터베이스라는 것입니다. Realm은 ORM이 아닙니다. 따라서 백그라운드에서 적용되는 SQL 쿼리문을 실행하지 않습니다. ORM은 데이터를 접근하는 간단한 업무도 많은 쿼리문의 작업이 필요합니다. CPU 사이클과 디스크 시간을 소비하며 속도가 한순간에 느려질 수 있습니다. Realm은..
-
[iOS] Coordinator Pattern 적용iOS/EARLY BUDDY | iOS 2020. 7. 31. 22:21
안녕하세요! 오랜만의 포스팅입니다 :-) SOPT라는 동아리에서 Appjam을 진행했던 '얼리버디' 서비스를 다시 갈아엎는 과정을 하고 있는데요! 아무래도 앱잼은 2주 동안 빠르게 프로젝트를 완성하는 장기 해커톤이다 보니 그때의 프로젝트를 다시 열어보면 제가 개발했지만 도저히 뭐가 뭔지 모르겠더라고요.. 폴더링도 나름대로 했지만 너무너무 파일이 많고! 패턴이라고는 하나도 없는 그런 상태였습니다. 얼리버디 서비스는 navigation이 거의 주를 이루고 있어서 ViewController의 책임이 아주 무거웠는데요. ViewController을 가볍게 만들고 쉽게 navigation 처리를 해주기 위해서 저는 디벨롭 과정에서 Coordinator 패턴을 적용하기로 마음먹었습니다! 우선 Coordinator ..
-
CoreLocation 적용하기iOS/iOS 2020. 6. 20. 07:18
안녕하세요! 오랜만에 글을 씁니다 하하 XD 오늘은 유저의 위치를 Core Location을 사용해서 적용해 서버랑 통신을 진행할 건데요. 쭉 진행해보겠습니다!! Core Location 네. 개발자 문서에는 이렇게 적혀있네요. Core Location은 주변 아이비컨과 디바이스의 지리적 위치를 제공하는 프레임워크라고 합니다. 프로젝트의 Core Location가 처음으로 실행된다면 gps를 허용 여부에 관한 알림 메시지를 띄워야 합니다. CLLocationManager CLLocationManager 클래스는 위치 관련 이벤트를 앱에서 시작하고 중지하는 데 사용하는 오브젝트입니다. CLLocationManagerDelegate CLLocationManagerDelegate 프로토콜은 location m..