전체 글
![OOP정복⛳️ (2) 객체지향프로그래밍이란](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEVqcv%2FbtrZNKiNr3J%2FWrXTyQn9py46XOryCawHY0%2Fimg.png)
OOP정복⛳️ (2) 객체지향프로그래밍이란
1편을 보고 오시면 더욱 좋아요! https://chanhee-jeong.tistory.com/29 OOP정복⛳️ (1) 객체지향프로그래밍의 등장 (객체지향 VS 절차지향) 어쩌다가 객지프 공부할일이 생겨서 작성하게 되본 새로운 시리즈 OOP정복 출발 ✨✨✨ (물론 완전한정복🥲은 어려운걸 알고 있음) 🕖 등장배경 아니,, 그래서 왜 객체지향프로그래밍이 나왔는 chanhee-jeong.tistory.com 🐣 요약 Chat GPT! 객체지향프로그래밍을 좀 인상적인 문장으로 요약 좀 해줘 저보다.. .글을 잘쓰는 chat gpt 가 써준 요약입니다. 객체지향프로그래밍에 대한 다양한 정의가 있지만 정말 매우 깔끔하게 정리를 해줬습니다. 지난시간에 짚고 넘어간 "데이터와 데이터를 조작하는 코드를 가진 객체" 를..
![OOP정복⛳️ (1) 객체지향프로그래밍의 등장 (객체지향 VS 절차지향)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpyPdp%2FbtrZz0Al93h%2FWUQTakUXnM4k3Fm25vPNy1%2Fimg.png)
OOP정복⛳️ (1) 객체지향프로그래밍의 등장 (객체지향 VS 절차지향)
어쩌다가 객지프 공부할일이 생겨서 작성하게 되본 새로운 시리즈 OOP정복 출발 ✨✨✨ (물론 완전한정복🥲은 어려운걸 알고 있음) 🕖 등장배경 아니,, 그래서 왜 객체지향프로그래밍이 나왔는데? 기술이 급속도로 발전에 따라 하드웨어는 성장했고 이에 맞춰 SW도 복잡해지고 거대해졌습니다. feat. 무어의 법칙 : 마이크로칩 기술의 발전 속도에 관한 일종의 법칙으로 마이크로칩에 저장할 수 있는 데이터 분량이 18-24개월 마다 두 배씩 증가한다 이렇게 되면서 기존의 flow 즉, 순서 중심의 절차지향 개발방식의 한계가 대두되었습니다. 👉 절차지향프로그래밍의 한계 👈 절차지향프로그래밍 방식의 경우 프로시저 호출의 개념을 바탕으로 하고 있는 프로그래밍 패러다임으로 데이터를 처리하는 부분은 구조화가 되어있으나 데이..
![[iOS/하루하나] Localization 적용기 2탄 : 앱이름, 사진, 날짜 지역화](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEa2vE%2FbtrWRzSWarK%2FpGAbUourKrZBTYPGNBZ901%2Fimg.png)
[iOS/하루하나] Localization 적용기 2탄 : 앱이름, 사진, 날짜 지역화
[하루하나] Localization 적용기 2편 : 앱이름, 사진, 날짜 지역화 지난편에서 텍스트 지역화를 다루었으니 이번편에서는 그외 지역화를 다뤄볼게요! 1편에서는 깔끔하게 텍스트 지역화해보기를 다루고 있습니다 [하루하나] Localization 적용기 1탄 : 깔끔하게 텍스트 지역화해보기 하루하나 Localization 적용기 1탄 : 깔끔하게 텍스트 지역화해보기 이번편은 매우 간단한 이야기를 담고 있어 가볍게 시작해봅니다! 인스타에 앱 만든다고 or 다운좀! 하고 올리면 외국 친한 친구들 chanhee-jeong.tistory.com 1. 앱이름 앱이름 지역화는 너무 쉬운데요! InfoPlist.string 을 만들어주고 각 국가별 앱 이름으로 "CFBundleDisplayName" 키를 설정해주..
![[iOS/하루하나] Localization 적용기 1편 : 깔끔하게 텍스트 지역화해보기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA7NK7%2FbtrWRQGREBf%2FCTuYsNZsoIjgcxlyL7UajK%2Fimg.jpg)
[iOS/하루하나] Localization 적용기 1편 : 깔끔하게 텍스트 지역화해보기
하루하나 Localization 적용기 1편 : 깔끔하게 텍스트 지역화해보기 이번편은 매우 간단한 이야기를 담고 있어 가볍게 시작해봅니다! 인스타에 앱 만든다고 or 다운좀! 하고 올리면 외국 친한 친구들이 항상 영어버전도 달라고 dm 이 오곤 하는데요 😂 22년 12월에 친구한테 내년에 해줄게... 하고 약속을 했고 또 현재 출시한 앱에 외국 사용자들이 늘어나고 있어 추진력 100000%인 저는 23년이 된 지금 미루던 localization 을 바로 시도하게 되었습니다. 하루하나라는 앱을 현재 기획리딩 + 간단한 디자인 하면서 개발중에 있어요! (with 안드 / 디자인하는 iOS개발자) 제가 외국회사를 다닐때 가장 좋았던 것 중 하나가 프로젝트에 별칭을 붙여주는거라 사용중인데 1.0.1 별칭이 바로..
![debounce 와 throttle](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgccF3%2FbtrQkuqoIiz%2FsCk62nXnphs5KK7tgdqlWk%2Fimg.png)
debounce 와 throttle
debounce 공식문서는 debounce가 이벤트 간 특정한 시간간격이 지난 후 elements를 publish 한다고 설명합니다. 공식문서에서는 다음과 같이 debounce 에 대해 설명하고 있습니다! debounce operator를 사용하면 업스트림 publisher 로부터 value의 전송 간격과 value 의 개수를 제어할 수 있다. 이 operator 는 다운스트림에 전달되는 값의 수를 지정한 속도로 줄여야하는 bursty 혹은 대량 이벤트 스트림을 처리하는데 유용하다. 저는 이번에 검색기능을 구현하면서 요 기능을 찾아보게 되었어요! textfield 에 값을 입력할때마다 api call 을 하면 불필요하고 너무 많은 api 를 요청하게 되기 때문에 일정 시간을 두고 검색을 하려고 해요! 성..
![UITableView Header 동적으로 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2gw9r%2FbtrP8K8RpUw%2FsxyepXMjPMraM3pRi8knv1%2Fimg.png)
UITableView Header 동적으로 만들기
깃헙 스터디로그에서도 확인가능 : https://github.com/chaneeii/iOS-Study-Log/issues/53 내가 보려고, 정리하면서 쓰는 동적 헤더가 있는 tableview 🔥 불꽃 이모지가 있는 곳을 집중적으로 보면됩니다 1. 테이블뷰 만들어주기 -> 헤더도 같이 스크롤 하려고 그룹 스타일을 선택 private let tableView = UITableView(frame: CGRect.zero, style: .grouped) 2. 테이블뷰 속성 설정해주기 🔥🔥 매일 넣는 delegate, datasource 뿐만아니라 sectionHeight 속성을 아래와 같이 지정해주고 만들어둔 헤더뷰도 register 해줄게요! (UITableViewHeaderFooterView 을 이용했습니다..
![🚀 iOS 네트워킹 정복하기 (5) ATS (App Transport Security)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkGiRt%2FbtrQcNvM1RP%2F1hztooLxdfLzysWN5hRcO0%2Fimg.png)
🚀 iOS 네트워킹 정복하기 (5) ATS (App Transport Security)
원문(블로그이전) 시리즈 | 🚀 iOS 네트워킹 정복하기 - averycode.log 요즘은 블로그대신 github 에 학습내용을 정리를 하게 되었는데,오랜만에 velog로 돌아와 iOS 네트워킹을 정복 시리즈를 작성해봅니다.iOS를 공부한지 몇개월이 지났는데 바쁘다는 핑계(?)로 네트워 velog.io App Transport Security 📔 관련 공식문서 NSAppTransportSecurity Preventing Insecure Network Connections ATS란? ATS는 애플리케이션과 웹 서비스 사이에 통신 시 보안 향상을 위한 기능으로 iOS 9.0, macOS 10.11 이상의 앱에서 모든 인터넷 통신 시 안전한 프로토콜을 사용하도록 보장하는 것으로 사용자의 민감한 정보가 유출되..
![🚀 iOS 네트워킹 정복하기 (4) CodingKeys / Custom 인코딩과 디코딩](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA3jdH%2FbtrP9zMdFj8%2FKy1KQxEqvKtKTYCFarKJJK%2Fimg.png)
🚀 iOS 네트워킹 정복하기 (4) CodingKeys / Custom 인코딩과 디코딩
원문(블로그 이전) 시리즈 | 🚀 iOS 네트워킹 정복하기 - averycode.log 요즘은 블로그대신 github 에 학습내용을 정리를 하게 되었는데,오랜만에 velog로 돌아와 iOS 네트워킹을 정복 시리즈를 작성해봅니다.iOS를 공부한지 몇개월이 지났는데 바쁘다는 핑계(?)로 네트워 velog.io 이번 시간에는 key 이름을 커스텀할때 사용할 수 있는 Coding Key 와 직접 인코딩과 디코딩을 구현하는 방법에 대해 알아보겠습니다. 그전에 왜? 커스텀 할일이 생길까요? api 응답 데이터가 Camel Case 가 아니라 snake case 라던가 다른 형식을 사용하는 경우 swift 의 컨벤션에 맞지 않는데 요러한 경우에 사용할 수 있습니다. 다시한번 자세히 설명하면! 일반적으로 데이터 통신을..
![🚀 iOS 네트워킹 정복하기 (3) Codable Protocol ( JSON Encoding / Decoding)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs7By9%2FbtrQd8l8OSq%2F1I6lVkzocFTExGqG0AgR4k%2Fimg.png)
🚀 iOS 네트워킹 정복하기 (3) Codable Protocol ( JSON Encoding / Decoding)
원문 (블로그이전) 시리즈 | 🚀 iOS 네트워킹 정복하기 - averycode.log 요즘은 블로그대신 github 에 학습내용을 정리를 하게 되었는데,오랜만에 velog로 돌아와 iOS 네트워킹을 정복 시리즈를 작성해봅니다.iOS를 공부한지 몇개월이 지났는데 바쁘다는 핑계(?)로 네트워 velog.io Codable typealias Codable = Decodable & Encodable 자신을 "외부표현"으로 변환하거나 변활할 수 있는 타입 Codable 은 Encodable 과 Decodable protocol로 구성된 유니온 타입(union type)으로 정의할 수 있다. "외부표현" : 보통 JSON이나, property-list... 프로토콜로 Class, Enum, Struct 모두에서 ..
![🚀 iOS 네트워킹 정복하기 (2) URLSession](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FebXezu%2FbtrP98OcBvY%2Fy98dVbwtnsfKbB34FB25w0%2Fimg.png)
🚀 iOS 네트워킹 정복하기 (2) URLSession
원문 시리즈 (블로그 이전) 시리즈 | 🚀 iOS 네트워킹 정복하기 - averycode.log 요즘은 블로그대신 github 에 학습내용을 정리를 하게 되었는데,오랜만에 velog로 돌아와 iOS 네트워킹을 정복 시리즈를 작성해봅니다.iOS를 공부한지 몇개월이 지났는데 바쁘다는 핑계(?)로 네트워 velog.io URLLoadingSystem URL Loading System - 공식문서 The URL Loading System provides access to resources identified by URLs, using standard protocols like https or custom protocols you create. Loading is performed asynchronously, s..
![🚀 iOS 네트워킹 정복하기 (1) Kick Off](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FycKLH%2FbtrQb4xCSnV%2FQeF4r0NQXEQBaMkzZKN8A1%2Fimg.png)
🚀 iOS 네트워킹 정복하기 (1) Kick Off
원문 시리즈 (블로그 이전) 시리즈 | 🚀 iOS 네트워킹 정복하기 - averycode.log 요즘은 블로그대신 github 에 학습내용을 정리를 하게 되었는데,오랜만에 velog로 돌아와 iOS 네트워킹을 정복 시리즈를 작성해봅니다.iOS를 공부한지 몇개월이 지났는데 바쁘다는 핑계(?)로 네트워 velog.io 요즘은 블로그대신 github 에 학습내용을 정리를 하게 되었는데, 오랜만에 블로그로 돌아와 iOS 네트워킹을 정복 시리즈를 작성해봅니다. iOS를 공부한지 몇개월이 지났는데 바쁘다는 핑계(?)로 네트워크 통신을 완벽하게 이해하고 쓰는 느낌이 아니라 원리부터 차근차근 다시 공부해보려고 한다. Contents 공부순서는 아마 요렇게 되지 않을까 싶다 네트워크 기초 URLSession Alamof..
![[네트워크] HTTP 요청/응답 헤더](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FraqsA%2FbtrQcOg7nP0%2FqYpFcUcgc6s2zD42y3qrrK%2Fimg.png)
[네트워크] HTTP 요청/응답 헤더
원문(블로그이전) [네트워크] HTTP 요청/응답 헤더 HTTP 요청/응답 헤더 velog.io 🐙 HTTP 공통 헤더 요청 및 응답 메시지 모두에서 사용 가능한 일반 목적의(기본적인) 헤더 항목 주요 항목들 Date: HTTP 메시지를 생성한 일시 (RFC 1123에서 규정) Date: Sat, 2 Oct 2018 02:00:12 GMT Connection: 클라이언트와 서버 간 연결에 대한 옵션 설정(다소 모호한 복잡성 있음) Connection: close => 현재 HTTP 메시지 직후에 TCP 접속을 끊는다는 것을 알림 Connection: Keep-Alive => 현재 TCP 커넥션을 유지 Cache-Control Pragma Trailer 🐙 HTTP 헤더 내 엔터티/개체 헤더 (Entity..
![[네트워크] HTTP와 HTTPS 동작 과정](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVBTBN%2FbtrQdySHgZw%2Fvlj4k7KIlBgxKEsui69S71%2Fimg.png)
[네트워크] HTTP와 HTTPS 동작 과정
원문은 하기 링크에서 확인가능합니다 (블로그이전) [네트워크] HTTP와 HTTPS 동작 과정 HTTP와 HTTPS 동작 과정 velog.io https://github.com/WeareSoft/tech-interview/blob/master/contents/network.md 의 내용을 다룸 🧚♀️ HTTP의 동작과정 이전 포스트에서 HTTP는 Stateless한 프로토콜인 것을 확인했다. 즉, 각 요청은 독집적인 트랜잭셔으로 클라이언트가 서버에게 요청하기 전에 연결(connect)하는 과정이 필요하고, 서버의 응답을 받으면 종료(close)한다. 서버 접속 -> 클라이언트 -> 요청 -> 서버 -> 응답 -> 클라이언트 -> 연결 종료 사용자가 웹 브라우저에 URL 주소를 입력한다. DNS 서버에 ..
![[네트워크] HTTPS 그리고 보안 (암호화/인증서/전자서명)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvJH2H%2FbtrQd7HrYA5%2FdesIfKrUcHjYSebUVckY71%2Fimg.png)
[네트워크] HTTPS 그리고 보안 (암호화/인증서/전자서명)
원문은 하기 링크에서 확인가능합니다 (블로그이전) [네트워크] HTTPS 그리고 보안 (암호화/인증서/전자서명) HTTPS 그리고 보안 (공개키알고리즘/인증서/ssl/tls/전자서명) velog.io https://github.com/WeareSoft/tech-interview/blob/master/contents/network.md 의 내용을 다룸 HTTPS 그리고 보안 HTTP와 HTTPS의 가장 큰 차이점은 SSL 인증서이다. SSL인증서는 클라이언트와 서버간의 통신을 공인된 제 3차 업체(CA)가 보증해주는 전자화된 문서이다. SSL 인증서는 사용자가 사이트에서 제공하는 정보를 암호화한다. 암호화되어 전송되는 데이터는 중간에 누가 훔치거나 조작하려해도 암호화 되어있어서 해독할 수 없다. 🐬 SSL..
![[네트워크] HTTP와 HTTPS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZihVy%2FbtrQdyynE51%2FF5xNfnLjCAiAxFWS6ws3Rk%2Fimg.png)
[네트워크] HTTP와 HTTPS
원문은 하기 링크에서 확인가능합니다 (블로그이전) [네트워크] HTTP와 HTTPS HTTP와 HTTPS velog.io 🐬 HTTP HTTP HTTP : Hypertext 인 HTML을 전송하기 위한 통신규약 서버/클라이언트 모델을 따라 인터넷 상에서 정보를 주고 받기 위한 규칙이다. 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다. 하지만 HTTP은 암호화되지 않은 방법으로 데이터를 전송하여 악의적인 감청과 데이터 변조가 가능하다. 이를 해결하기 위해 등장한 것이 HTTPS 개념 HyperText Transfer Protocol 웹 상에서 클라이언트와 서버 간에 요청/응답(request/response)으로 정보를 주고 받을 수 있는 프로토콜 특징 주로 HTML 문서를 주고받는 데에 쓰인다..