본문 바로가기
728x90

전체보기139

[iOS/Swift] TableView 의 기초 :: UITableView, UITableViewCell UITableView class UITableView : UIScrollView 💡A view that presents data using rows arranged in a single column. UITableView 는 하나의 열을 갖는 여러개의 행으로 데이터를 표현하는 View 이다. UIScrollView 를 상속받은 클래스이므로, 수직으로 스크롤이 가능하다. 하나의 긴 리스트를 보여줄 수도 있고, 관련된 rows 를 그룹지어 보여줄 수도 있다. 사진의 Contacts app 을 보면, 알파벳 순으로 그룹지어져 있고 Settings app 도 title 은 없지만 그룹지어져 있다. Table view 는 일반적으로 계층적인 데이터를 가지고 있는 앱에서 이용되며, navigation view co.. 2021. 3. 1.
[iOS/Swift] Launch Screen :: 앱의 시작 화면 Launch screen Launch Screen 은 앱이 시작될 때 나타났다가 앱의 첫번째 화면으로 빠르게 전환된다. 앱이 실행되고 사용될 준비가 되었음을 알려주는 역할을 하며, 앱이 빠르고 반응적이라는 인상을 주기 위해 사용된다. 가이드에서 시각적인 효과를 주기 위해 사용되는 것은 아니라고 한다. 안드로이드 개발시에는 Splash screen 이라고 불렀는데, iOS 에서는 Launch Screen 이라고 부르는 점이 다르다. Launch screen in Xcode Xcode 프로젝트는 launch screen 을 위해 launch storyboard 를 제공한다. 유저가 앱을 처음 실행했을 때, 시스템은 앱의 UI를 화면에 보여줄 준비가 될 때까지 launch storyboard 를 보여준다. 만.. 2021. 2. 21.
[iOS/Swift] Tab Bar - UITabBar, UITabBarController 💡 Tab Bar Tab bar 는 앱 화면의 하단에 위치하며, 사람들이 다른 섹션들간 전환을 빠르게 하도록 한다. 일반적으로 다른 종류의 정보들을 보여줄 때, 혹은 같은 정보를 완전히 다른 스타일로 보여줄 때 사용한다. ✔︎ Tab Bar 와 Toolbar 의 차이점 Tab bar 와 비슷하게 하단에 위치한 toolbar 의 차이점을 이해하는 것이 중요하다. Tab bar 는 앱의 여러 섹션 중 전환을 하도록 하는 것이 목적이다. 예를 들면, 시계 앱의 알람, 스탑워치, 타이머 탭들이 있다. Toolbar 는 현재 보여지는 내용과 연관있는 액션을 수행하는 버튼들을 포함한다. 예를 들면, 아이템을 생성하거나 삭제하기, 북마크에 추가하기, 공유하기 등이 있다. Tab bar 와 Toolbar 둘 다 하단에.. 2021. 2. 14.
[IoT] ESP32-Cam 온도센서 연결하기, 비접촉 온도센서 비교 코로나19 확산을 방지하기 위한 주제인 "마스크 유무와 체온을 확인할 수 있는 무인 출입 관리 시스템" 에서 체온 측정도 중요한 태스크였다. 이를 위해서 접촉식보다 비접촉식 체온 측정 센서를 위주로 테스트해봤다. 비교해 본 센서는 다음과 같다. 비접촉 적외선 써모파일 센서 TMP006 Fever click - MAX30205 (접촉센서) GY-906 비접촉 온도센서 MLX90614 열화상 카메라 SparkFun GridEYE AMG8833 공통적으로 I2C 통신을 이용해서 온도 값을 받아왔다. ESP32 에서 지정된 I2C 포트는 이미 카메라와 연결되어 있었기 때문에, GPIO 핀 중에 가능한 핀을 이용했다. Multiple i2C devices 통신 방법이 두가지가 있지만, 아래 방식을 이용했다. Sa.. 2021. 2. 2.
[IoT] ESP32 - 이미지 FTP 서버에 업로드 하기 지난번 글에서 작성했던 것 처럼, ESP32-Cam 라이브러리에 예제로 얼굴 검출, 인식, 등록하는 기능이 제공된다. 하지만, 졸업작품 주제는 "마스크 유무와 체온을 확인할 수 있는 무인 출입 관리 시스템" 이었기 때문에, 마스크 착용 유무를 검출하는 것이 중요한 태스크였다. ESP32 에서 제공되는 예제로는 마스크를 착용한 얼굴을 인식할 수 없었기 때문에, 외부 라이브러리를 활용했다. 마스크 착용 유무를 판단하기 위해 머신러닝을 이용하므로 Ubuntu 서버로 이미지를 전송하는 것부터 시작해야했다. ESP32 에서 FTP 서버에 데이터를 전송하기 위해서는 ESP32_FTPClient 라이브러리를 사용했다. FTP 서버에 디렉토리 생성하기, 파일 쓰기, 이미지 쓰기 기능들을 사용할 수 있고, 예제파일로 제.. 2021. 2. 2.
[IoT] ESP32-Cam 으로 얼굴 검출, 인식, 등록하기 ESP32-Cam 보드는 만원 전후하는 가격대로 작은 사이즈에 카메라와 Wifi, Bluetooth, BLE 기능을 사용할 수 있는 가성비 보드이다. 졸업작품을 진행할 때 교수님께서 ESP32 보드를 추천해주셔서 알게되었고, 6개월동안 작품을 만들기 위해 사용했다. ESP32 보드는 usb가 있어 바로 컴퓨터와 연결이 가능한데, ESP32-CAM 은 usb 단자가 없어 FTDI programmer를 이용해야한다. 사진에 나타나있는 것 처럼 점퍼선등을 이용해 연결하면 된다. 핀 연결 후 리셋버튼을 누르고, 코드를 업로드하면 된다. 코드 업로드 이후에는 IO0 - GND 연결을 해제하고 다시 리셋버튼을 눌러줘야 한다 아두이노IDE 를 사용해 코드를 업로드 하기 위해서, Board Manager를 통해 ESP.. 2020. 12. 16.
이탈리아 일주일 여행 D+5 :: 로마, 바티칸 시국 20.02.21.Fri, Firenze -- 1h 30m --> Roma 이번에도 기차를 타고 피렌체에서 로마로 출발했다. 기차에서 음료와 쿠키를 나눠줬다. Colosseum, Roma 이탈리아 남부로 갈수록 따뜻하다더니, 로마는 확실히 햇빛이 강했다! 숙소에 들렀다 먼저 간 곳은 콜로세움이었다. 콜로세움 내부에 들어가기 위해 줄서있던 관광객들의 모습.. 다른 여행지보다 사람이 훨씬 많았다. 나중에 다시 가게된다면 내부 입장을 해보도록 해야겠다 ! Arch of Constantine 콜로세움 서쪽에 있는 콘스탄티누스 개선문, 벽면의 부조는 황제의 업적과 전쟁 장면 등을 묘사하고 있다고 한다. Monumento a Vittorio Emanuele II 판테온 신전으로 가는길에 멋있어서 찍었는데, 비토리오 .. 2020. 12. 11.
[Python] class, instance 속성, class 상속과 생성자 C++/Java에서의 Class와 차이점 클래스 instance 생성시 new 키워드가 없다. 함수호출과 같은 방식을 사용한다. 메소드 오버로딩이 없다. 메소드 오버로딩: 하나의 클래스에서 메소드 이름은 같고, 인자를 다르게 하는 형태 가변인자를 활용해 사용한다. 가변인자는 인자 앞에 *를 붙여서 사용 (함수참고) def add(self, *num) class 속성과 instance 속성을 구분해서 정의해줘야한다 C#, Java는 다중상속이 불가능하지만 python, c++은 다중상속이 가능하다. class 속성과 instance 속성 구분하기 class 속성은 class를 import한 후 사용할 수 있다. class 변수는 class 내부에서 정의해준다. class method 정의시 @classme.. 2020. 12. 7.
[Python] 데이터 타입 - List, Dictionary, JSON 데이터 타입 immutable과 mutable 은 변수가 담고 있는 object의 속성에 따라 달라지는 특성이다. 변수가 담고있는 object의 값을 변경 할 수 없는 데이터 타입은 immutable object 라고 부르며, 변수가 담고있는 object의 값을 변경 할 수 있으면 mutable object 라고 부른다. immutable object : int, float, bool, string, tuple mutable object : list, dictionary id(object) 함수는 object의 고유한 상수를 리턴한다. 리턴하는 값이 실제 메모리상의 주소는 아니지만, object마다 존재하는 고유값이다. 아래 예제는 immutable object, mutable object를 담고있는 변.. 2020. 12. 7.
728x90