일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- api 비동기처리
- 음악 url 파일 다운로드
- bucket4j
- 프리코스
- 우아한테크코스
- 유효시간 설정 url
- 프론트엔드 과제
- compateto
- 코멘토 #코멘토실무PT #실무PT후기 #실무강의 #리액트강의 #웹프로그래밍 #react #웹개발실무
- TypeORM
- Deep Dive
- 우아한 테크코스
- invalid_grant
- 검색
- NestJS
- 타입스크립트
- 프로그래머스
- Dev-Matching
- oauth
- 스프링부트
- AWS
- 프론트엔드
- 모던 자바스크립트
- this
- 파일 url
- concurrency limit
- api 요청 수 제한
- 딥다이브
- redis
- 자바스크립트
- Today
- Total
목록모바일 (13)
개발 알다가도 모르겠네요
RecyclerView는 말 그대로 재활용이 가능한 뷰입니다. 리사이클러 뷰는 사용자가 아래로 스크롤할 때, 맨 위에 존재해서, 곧 사라질 뷰 객체를 삭제하지 않고 아래쪽 새로 나타날 뷰로 이동합니다. 이에 따라 뷰 객체를 계속 생성하지 않아도 되기 대문에 효율적입니다. 리사이클러 뷰에는 주요 클래스가 몇 가지 있습니다. 1. Adapter : 기존의 ListView에서 사용하는 Adapter와 같은 개념으로 데이터와 아이템에 대한 View 생성. 사용자 데이터 리스트로부터 아이템 뷰를 만듦. 2. Layout Manager : 아이템 뷰가 나열되는 형태를 관리하기 위한 요소 제공 (일렬로 나열하는 리스트뷰와 달리, 리사이클러뷰는 수평 방향 레이아웃 또는 격자(Grid) 형태의 레이아웃으로도 나타낼 수 ..
getter/setter란? 자바의 특성 중 정보 은닉(Information Hiding)의 특성을 고려한 방식입니다. 클래스의 멤버 변수를 private형으로 구현했을 때, 이 멤버 변수에 대한 read/write 는 각각 getter/setter 메서드를 통해 처리합니다. 사람의 정보를 저장하는 Member Class가 존재한다고 가정했을 때, 멤버 변수로는 나이 (private int age) 이름 (private String name) E-mail (private String email) class의 멤버 변수 각각에 해당하는 getter/setter 메서드 public int getage(), public void setage(int age) public String getname(), publ..
WebView를 사용하여 특정 인터넷 페이지를 출력하도록 해 보겠습니다. 먼저 xml파일입니다. 그다음 메인 액티비티입니다. public class MainActivity extends AppCompatActivity { private WebView webView; private String url = "https://www.naver.com"; //출력하고 싶은 url주소를 입력합니다. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView)findViewById(R.id.web..
SharedPreferences이란? 여러 데이터 저장 방법 중 간단하게 사용할 수 있는 기능입니다. 개발에 필요한 크지 않은 변수와 값들을 내부에 저장하기에 적당합니다. 파일이 앱 폴더 내에 저장되므로 앱을 삭제하면 당연히 데이터도 삭제됩니다. 예시를 살펴보겠습니다. public class MainActivity extends AppCompatActivity { EditText et_save; String shared = "file"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_save = (E..
Adapter는 하나의 Object(객체)로서, 보이는 View와 그 View에 올릴 Data를 연결하는 일종의 Bridge이다. 즉, 데이터의 원본을 받아 관리하고, 어댑터뷰가 출력할 수 있는 형태로 데이터를 제공하는 중간 객체 역할을 한다. 리스트뷰를 갱신하기 위해서는 Adapter의 notifyDataSetChanged() 메소드를 사용한다.
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let storyboard = UIStoryboard.init(name : "Main", bundle: nil) let newsDetail = storyboard.instantiateViewController(identifier: "NewsDetailController") as! NewsDetailController if let news = newsData { let row = news[indexPath.row] if let v = row as? Dictionary { if let imageUrl = v["urlToImage"] as? String { newsDe..
swift에서 data는 dictionary 타입입니다. (key, value) func getNews() { let url = "https://newsapi.org/v2/top-headlines?country=kr&apiKey=248805a55af84f14b13e8e69456fb6dd" let task = URLSession.shared.dataTask(with: URL(string: url)!) { (data, response, error) in if let dataJson = data { do { let json = try JSONSerialization.jsonObject(with: dataJson, options: []) as! Dictionary //swift에서 data는 dictionary..
Create a url Create a URLSession Give the session a task Start the task URLSession은 기본적으로 다음과 같은 순서(Life Cycle)로 진행됩니다. Session configuration을 결정하고, Session을 생성. 통신할 URL과 Request 객체를 설정. 사용할 Task를 결정하고, 그에 맞는 Completion Handler나 Delegate 메서드들을 작성. 해당 Task를 실행. Task 완료 후 Completion Handler가 실행. Completion handler 어떠한 일이 끝났을 때 진행할 업무를 담당. 1. Session URLSession은 크게 3가지 종류의 Session을 지원합니다. Default S..
모바일에서 네트워크 통신 시 그 과정은 백그라운드에서 동작(스레드 = 일꾼에 의해) 합니다. Background : Network Main : UI 즉 ui에 보이도록 하라면 백그라운드의 데이터를 메인으로 올라오게 해야 합니다. 이때 dispatchqueue를 사용합니다. GCD (Grand Central Dispatch) 멀티코어 환경을 제공하는 ios에서 멀티스레드를 활용한 동시성 프로그래밍을 개발자가 DispatchQueue를 이용해 쉽게 구현할 수 있도록 하는 기술. Serial : Queue 대기열 내에 있는 작업 항목들을 순차적으로 처리 Concurrent : Queue 대기열 내에 있는 작업 항목들을 병렬로 동시에 처리 Sync : Queue의 작업을 수행시키고 수행 완료될 때 까지 기다림...
클로저 실행 가능한 코드 블록 파라미터로서 넘겨질 수 있음. 이름이 없는 함수 옵셔널 옵셔널의 개념 어떤 변수에 value가 있을 수도 있고 없을 수도 있음. 있다면 value값을 넣고 없다면 nil을 넣음. Forced unwrapping : 억지로 박스를 까 보기 Optional binding (If let) : 부드럽게 박스를 까 보자 1 Optional binding (guard) : 부드럽게 박스를 까 보자 2. Cyclonic complexity를 줄이기 위해. guard란? 함수의 시작 부분에 써서 반드시 가져가야 할 조건들을 검사하는 파트. if문의 subset개념으로 if문을 대체할 수 있음. if문보다 가독성이 좋음. Nil coalescing : 박스를 까봤더니, 값이 없으면 디폴트 ..