---
# System prepended metadata

title: Untitled

---




웅 모르는부분 : 

1. jsonDecoder().keyDecodingstrategy 가 무엇일까?
2. CustomCell 내부 xib의 오토레이아웃은 어떻게 적용해야할까?
3. 스토리보드를 아예 사용하지않고(지우고) 어떻게 코드로 UI를 그릴 수 있을까?
4. 왜 스토리보드가 존재할 때는 sceneDelegate를 타지않을까?
    - 그렇다면 scneneDelegate를 탈때와 AppDelegate를 탈 때가 어떻게 다른건지


- dateformatter 51년도가 나옴 why. 왜 1970년을 기준으로 삼나.
- cg size cg rect
- UIView.keyvoardwillshow UIResponder 차이!

키보드 superview bottom safearea bottom
<div style="display: flex, flex-direction: column">
    <img src="https://i.imgur.com/tSmq2kh.png" width="200px"/>
    <img src="https://i.imgur.com/G3yBXdn.png" width="200px"/>
    <img src="https://i.imgur.com/tSmq2kh.png" width="200px"/>
    <img src="https://i.imgur.com/WoD7d7U.png" width="200px"/>
    <img src="https://i.imgur.com/3zriCPh.png" width="200px"/>
</div>
![](https://i.imgur.com/uYwE4S3.png)


안녕하세요 woong, jeremy 입니다.
Step1 완료하여 PR드립니다.


### 🤔 고민한 부분

#### 📎 키보드가 텍스트를 가리지 않도록 설정
- 키보드 Hide,Show 상태에 따라 다른 액션을 취하도록 하기위해NotificationCenter를 활용하였습니다.
- Notification 구조체 내부의 인스턴스인 userInfo의 KeyboardFrame을 전달받아 키보드의 높이 값을 얻어 낼 수 있었고,
- textView의 bottom 제약의 Constant에 전달받은 키보드의 높이값를 설정하는 것으로 문제를 해결 할 수 있었습니다. 


#### 📎 textView에서 title과 body를 나누는 로직 구현

`서론` 
- 아이폰의 메모장 앱을 참고하여 textView를 하나만 활용하면서 Diary title과 body를 구분할 수 있는 로직을 구현했습니다.

`본론` 
1. title과 body를 무엇을 기준으로 나눌지 고민이었는데textView에 title과 body를 합치면서 사용하는
     `\n\n` 을 기준으로 나누는 것으로 문제를 해결할 수 있었습니다.
     
    ```swift
    // DetailViewController.swift

    private func configureView() {
        ...
        self.detailTextView.text = "\(data.title)\n\n\(data.body)"
    }
    ```
2. 하지만 유저가 title과 body를 나누지 않고 하나의 문단으로 작성하는 경우도 고려해야 했습니다.
- 이 과정에서 고려해본 형태는 아래와 같습니다.

    | <center> A </center>| <center> B </center> |
    | -------- | -------- |
    | <center><img src="https://i.imgur.com/3dWUO7V.png" height="500px"/> </center>   |<center> <img src="https://i.imgur.com/SoiWpUU.png" height="500px"/> </center>   |
    |문단이 있고 components로 </br>확실하게 나눌 수 있는 형태|문단이 하나이고 title과 body를 </br> 명확히 나눌 수 없는 형태|

- 문단이 나뉘어있는 경우 componenets(separatedBy:) 메서드를 활용하여 배열의 첫 요소를 title로 지정하도록 했고 문단이 하나뿐이라면 문자열의 앞 20자가 title 그리고 나머지가 body가 되도록 했습니다.

`결론`
- textView를 여러개를 사용하면 편했겠지만 재미있는 시도였던 것 같습니다.
- 아직은 완성되지 않은 기능인 것 같습니다. 고려해보지 않은 케이스들도 몇가지 떠오릅니다.
- String index에 대해 알아볼 수 있는 좋은 경험이었습니다.

### ⁉️ 궁금한 점

앱 타겟 버전에 따라 사용할 수 있는 기술들이 각기 다를 것 같습니다. 저희 프로젝트의 경우 14버전인데 tableview를 사용하느냐 collectioView를 활용하여 list형태를 구현하느냐가 고민입니다. 일기장의 경우 단순한 앱이라 collectionView를 사용하는 것은 오버엔지니어링이 아닐까 그리고 추후에 tableView가 사라질거라는 이야기를 들은 것 같아 오히려 collectionView를 사용해야하지않을까라는 생각이 같이 드네요

`요약`
- 가능하면 최신 기술을 활용해야하는 것인가
- 앱 타겟 14에서 collectionView는 오버엔지니어링인가
- tableView가 사라질거라는 이야기를 들은 것 같은데 이제는 떠나보내야하는가

> 위의 3가지에 대해서 알라딘은 어떻게 생각하시는지 궁금합니다!