이종원
• 장기 실행 토큰에 대한 요청에는 앱 시크릿 코드가 포함되어 있으므로 절대 클라이언트 측 코드 또는 역컴파일될 수 있는 앱 바이너리에서 호출하지 말고 서버 측 코드에서만 호출해야 합니다. 다른 사람에게 앱 시크릿 코드를 공유하거나 코드에 노출하거나 클라이언트에 전송하거나 기기에 저장하지 마세요.
•
위의 문장에 대한 해석이 궁금합니다!
•
토큰 갱신하는 법 https://roundfigure.tistory.com/36
정남훈
•
실무에서 진행되는 Unit test, UI test 과정
•
Unit test 범위
◦
테스트가 꼭 필요한 기능
◦
적절한 커버리지
멘토링
•
장기실행토큰
◦
토큰에는 앱 시크릿 코드!
◦
30~90일 토큰을 가져가고 > 토큰 만료시키고 다시 리프레쉬 토큰
◦
“123dsfjkahkfejkfhjke123” → 키값 / 토큰 탈취 가능
◦
Chat-GPT 4를 사용하고 있음!
▪
API를 앱에서 활용할 수 있음
▪
키값을 이용함 (개인별로 발급받은 고유한 키값)
▪
앱 시크릿 코드를 다른 사람과 공유할 수 있는 상황을 만들지 말자!
•
클라 → 앱에서 담고있다가 사용하지 말자! (전송하지 말자!)
•
서버에 담아라
•
서버 API를 통해 사용하는것이 더 안전하다!
•
보안을 위해서 신경써라~!
•
Unit Test & UI Test
◦
Unit Test
▪
TDD (Test Driven Development)
•
기능을 개발하기전에 테스트 코드를 작성하자~!
•
예시로, A라는 버튼이 눌렸을때 print(”123”)
•
123이 출력되는지? 1234가 출력되는지?
func print(a: Any) {
print(String(a))
}
Swift
복사
▪
기능 개발을 하고 이걸 QA 파트에 넘기거나 배포하기전에 검증용으로 테스트 코드를 구성해본다!
▪
주요기능들, 복잡한것들을 위주로만 짜는곳도 있음!
▪
내부적으로 코드 커버리지를 체크할때는 100프로를 지향하지 않을까!
◦
UI Test
▪
사용하지 않는곳이 더 많을것 같다!
▪
느리다! → 앱이 커지면 이걸 다 돌리고 화면단을 검증하기때문에 좀 많이느림
▪
콘텐츠 앱 → 왓챠 OTT, 넷플
•
데이터가 많죠!
•
UI Test를 통해서 하나씩 눌러서 재생을 해보고 잘 나오는지 판단하고 이런 반복 테스트를 할때는 용이하다.
•
StateObject, ObservedObject
◦
상위뷰 > 하위뷰 (어떤 버튼을 눌러서 변경이되었다!)
▪
isDetailViewPushed: Bool > true면 화면전환이일어나고 false면 하위뷰를 닫는다.
◦
StateObject
▪
뷰 자체가 사라지거나 리렌더링 > 재생성되더라도 StateObject로 저장된 데이터는 유지가 됩니다!~
◦
ObservedObject
▪
뷰 자체가 사라지거나, 소멸되면 얘도 사라짐 (저장된 데이터!)
▪
다른 뷰에서 생성되서 전달된 데이터를 가지고 사용하는것이 좋다!
▪
데이터 공유때 사용할 수 있다!
▪
상하위뷰에서 AViewModel이라는 친구를 StateObject
•
StateObject는 부모나 자식 뷰와 공유되지 않음
◦
StateObject 얘는 스유가 직접 관리하는 객체 느낌
▪
이 뷰가 유지되고 있으면 유지됨
•
새로고침을 한다던가 데이터가 추가된다 하더라도 기존 데이터들이 유지가됨
◦
ObservedObject
▪
외부 객체를 스유가 보는것 (관찰)
▪
뷰가 새로고침된다/ 데이터추가되어서 데이터가 변한다 → 데이터가 사라질수도 있음, 변경될수 있음
▪
10주차 코드 참고!
•
플젝 3,4 → 최종 플젝때 시니나 케이크 같이 할까요 어떨까요~?
◦
굿굿