목록투케이2K 알고리즘 (105)
투케이2K
[환경 설정 및 설명] 언 어 : Ios 설 명 : 패턴 - 함수 체이닝 (Method Chaining) 방식 사용해 권한 요청 및 앨범 사진 선택, 이미지 뷰에 사진 표시 [체이닝 방식 간단 설명] 1. 체이닝 이란 코드 부분을 계속 연결해 가면서 설정 하는 방식입니다 2. 체이닝 방식은 사슬 처럼 연결된 고리 처럼 메소드를 계속해서 연결해 사용 하는 방법 입니다 3. 예시 (로직 연결) : 앨범 접근 권한 요청 >> 앨범 접근 권한 응답 받으면 >> 앨범 열기 메소드 호출 >> 사용자 사진 선택 >> 이미지 뷰에 사진 표시 [소스 코드] import UIKit // MARK: [import 추가 실시] import AVFoundation import Photos class A_Ima..
[환경 설정 및 설명] 언 어 : Kotlin 설 명 : 문법 - 코루틴 (coroutine) 기본 개념 설명 및 비동기 로직 구현 실시 [소스 코드] https://blog.naver.com/kkh0977/222895548606 102. (kotlin/코틀린) 코루틴 (coroutine) 개념 간략 정리 실시 [개발 환경 설정] 개발 툴 : AndroidStudio 개발 언어 : Kotlin [개념 설명] blog.naver.com https://blog.naver.com/kkh0977/222895559513 103. (kotlin/코틀린) 코루틴 (coroutine) Main 사용해 UI 변경 작업 수행 실시 [개발 환경 설정] 개발 툴 : AndroidStudio 개발 언어 : Ko..
[환경 설정 및 설명] 언 어 : Kotlin 설 명 : 문법 - async , await 사용해 작업 병렬 처리 (Task Parallel Processing) 실시 [소스 코드] // =================================== [변수 선언 실시] ====================================== var coroutineJob: Job? = null // =================================== [코루틴 정의 실시] ===================================== try{ /** * ------------------------------------ * TODO [요약 설명] * -------------------..
[환경 설정 및 설명] 언 어 : Ios 설 명 : 문법 - async , await 사용해 작업 병렬 처리 (Task Parallel Processing) 실시 [소스 코드] [1]. 병렬 처리 (Parallel Processing) 란? - 병렬 처리란 여러 개의 프로세서 (CPU의 코어) 를 통해 하나의 프로그램을 처리하는 것입니다 - 병렬 처리를 수행 시 처리 부하를 분담해 -> 처리 속도의 향상을 기대할 수 있습니다 - 병렬 처리는 단일 프로세스가 아닌 다중 프로세서로 작업을 처리합니다 (ex: 인터넷 검색을하면서 파일 다운로드 수행) - 프로그램 코드 상 병렬 처리는 멀티 스레드 환경 (여러개의 작업 줄기) 에서 task 를 분산해서 처리한다는 의미입니다 [2]. Task 작업 병렬 처..
[환경 설정 및 설명] 언 어 : Java 설 명 : 신규 아이디 추천 - regExp 정규식 , 삼항식 , substring , charAt [소스 코드] // TODO [solution 메소드 정의 실시] public String solution(String new_id) { /** * //------------------------------- * [신규 아이디 추천] * //------------------------------- * 1. 설명 : 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다 * //------------------------------- * 2. 규..
[환경 설정 및 설명] 언 어 : Java 설 명 : 프로그램 - [간단 설명] 컴파일 타임 (Compiletime) , 런 타임 (Runtime) 설명 [설 명] [프로그램 구동 관련] 1. 사용자가 프로그램 소스 코드 작성 실시 2. 컴파일 타임 수행 3. 런 타임 수행 [컴파일 타임 : Compiletime] 1. 사용자가 작성한 소스코드를 컴파일 이라는 과정을 통해 기계가 읽을 수 있는 바이트 코드로 변환하는 과정입니다 2. 컴파일 타임에서는 신택스 에러 (Syntax error) 나 파일참조 오류가 발생하며, 사용자에게 오류가 발생한 소스코드 위치를 알려줍니다 [런 타임 : Runtime] 1. 컴파일 과정을 거친 후 응용 프로그램이 구동되는 과정입니다 2. 런 타임 과정에는 클래스 로더..
[환경 설정 및 설명] 언 어 : Java 설 명 : 문법 - try catch throws exception 예외 처리 및 예외 상황 리턴 실시 [소스 코드] package ex; public class MainActivity6 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("[Program Start]"); System.out.println(""); /* [요약 설명] * 1. throws exception : 프로그래머가 임의로 exception을 강제로 발생 시켜 예외 상황을 알려주는 것입니다 * 2. exception 을 정의한 메소드는 throws 키워드를 사용..
[환경 설정 및 설명] 언 어 : Java 설 명 : 패턴 - 프록시 패턴 (Proxy Pattern) 구현 실시 [클래스 구조] [요약 설명] /** * // ----------------------------------------- * TODO [프록시 패턴 설정] * // ----------------------------------------- * 1. 프록시 (Proxy) : 대리인이라는 뜻으로 무엇인가를 대신 처리하는 의미입니다. * // ----------------------------------------- * 2. 프록시 패턴 (Proxy Pattern) : 클라이언트가 타깃에 접근하는 방식을 중간에서 변경해주는 역할을 합니다 * // --------------------..
[환경 설정 및 설명] 언 어 : Android (Java) / Ios (Swift) 설 명 : 테스트 - 유닛 테스트 (unit test) 수행 방법 정리 - junit, espresso, unit [수행 방법] https://kkh0977.tistory.com/2429 332. (AndroidStudio/android/java) 유닛 테스트 (Unit Test) 수행 방법 설명 [개발 환경 설정] 개발 툴 : AndroidStudio 개발 언어 : java [유닛 테스트 설명] /** * // ----------------------------------------- * TODO [유닛 테스트 설명 및 사용 이유] * // -------------------.. kkh0977.tis..
[환경 설정 및 설명] 언 어 : Android (Java) 설 명 : 패턴 - MVVM (Model , View , ViewModel) 형태 로직 구현 실시 [클래스 구조] [요약 설명] /** * TODO [클래스 설명] * // ----------------------------------------- * 1. MVVM 패턴 동작 수행 클래스 * // ----------------------------------------- * 2. MVVM 구성 : * - M (모델) : 데이터 조작 (저장, 호출) 관련 클래스 * - V (뷰) : 사용자에게 표시되는 화면 및 액티비티 클래스 * - VM (뷰 모델) : 뷰 를 나타내주기 위한 [모델 + 뷰] 의 로직 담당 * // --------..
[환경 설정 및 설명] 언 어 : Android (Java) 설 명 : 패턴 - 팩토리 패턴 (Factory Pattern) 구현 실시 [클래스 구조] [요약 설명] /** * TODO [클래스 설명] * // ----------------------------------------- * 1. 팩토리 패턴 정의 클래스 * // ----------------------------------------- * 2. 팩토리 패턴 : * * 다수의 자식 클래스를 가진 슈퍼 클래스가 있을 경우 매개 변수 값에 따라서 해당 자식 클래스의 인스턴스를 반환해줍니다 * * 팩토리 패턴 구현에 필요한 슈퍼 클래스는 인터페이스, 추상 클래스, 일반 클래스 모두 가능합니다 * * 팩토리 패턴은 클라이언트와 구현 ..
[환경 설정 및 설명] 언 어 : Android (Java) 설 명 : 패턴 - 빌더 패턴 (Builder Pattern) 클래스 구현 실시 [요약 설명] /** * TODO [클래스 설명] * // ----------------------------------------- * 1. 빌더 패턴 정의 클래스 * // ----------------------------------------- * 2. 빌더 패턴 : * * 객체 생성 및 데이터 설정 등 복잡한 과정을 사용자가 봤을 때 명시적으로 이해할 수 있도록 구조를 정의한 것입니다 * // ----------------------------------------- * 3. 빌더 패턴 사용 이유 : * - 프로그램 코드상 가독성을 향상 시킬 수 ..
[환경 설정 및 설명] 언 어 : Android (Java) 설 명 : 개념 - 유니 캐스트 , 멀티 캐스트 , 브로드 캐스트 전송 방식 [요약 설명] 1. [유니 캐스트] - 하나의 송신지에서 >> 하나의 수신지로 데이터 전송 (1 : 1 방식) - 안드로이드 파이어베이스 푸시 [HTTP V1] 방식 처럼 [액세스 토큰 서버 키] [특정 사용자] 발송 2. [멀티 캐스트] - 하나의 송신지에서 >> 다수의 수신지로 데이터 전송 (1 : N 방식) - 데이터 중복 전송으로 인한 네트워크 자원 낭비 방지 - 특정 토큰을 등록한 사람들에게 전송 - 안드로이드 파이어베이스 푸시 [HTTP] 방식 처럼 [고정 서버 키] [특정 다수 사용자] 발송 3. [브로드 캐스트] - 하나의 송신지가 같은 서브넷 네..
[환경 설정 및 설명] 언 어 : Android (Java) 설 명 : 패턴 - MVP (Model , View , Presenter) 형태 로직 구현 실시 [요약 설명] /** * TODO [클래스 설명] * // ----------------------------------------- * 1. MVP 패턴 동작 수행 클래스 * // ----------------------------------------- * 2. MVP 구성 : * - M (모델 / Model) : 데이터 조작 (저장, 호출) 관련 클래스 * - V (뷰 / View) : 사용자에게 표시되는 화면 및 액티비티 클래스 (안드로이드 XML 레이아웃 / Activity 및 Fragment 클래스) * - P (제공자 / Pr..
[환경 설정 및 설명] 언 어 : Android (Java) 설 명 : 패턴 - MVC (모델 , 뷰 , 컨트롤러) 형태 로직 구현 실시 [요약 설명] /** * TODO [클래스 설명] * // ----------------------------------------- * 1. MVC 패턴 동작 수행 클래스 * // ----------------------------------------- * 2. MVC 구성 : * - M (모델) : 데이터 조작 (저장, 호출) 관련 클래스 * - V (뷰) : 사용자에게 표시되는 화면 (안드로이드 XML 레이아웃 / 사용자 인터페이스 제공) * - C (컨트롤러) : 모델 , 뷰 를 연결하는 브릿지 (다리) 역할 (안드로이드 Activity 및 Frag..
[환경 설정 및 설명] 언 어 : Swift 설 명 : 문법 - VO (Value Object) 클래스 , 구조체 선언 및 생성자 초기화 , get 호출 - get , 불변 데이터 [소스 코드] /* [요약 설명] 1. class : 클래스를 지정합니다 : 클래스는 상속이 가능 2. struct : 구조체를 지정합니다 : 구조체는 상속이 불가능 3. init : 클래스 및 구조체 생성자 초기화를 지정합니다 */ // [class 클래스 생성 실시 : 상속이 가능] class User_Class { var name: String? var age: Int? // 클래스 생성자 초기화 실시 init(name: String, age: Int){ // [전역 변수 = 파라미터 값] self.name = n..
[환경 설정 및 설명] 언 어 : Java 설 명 : 문법 - DTO (Data Transfer Object) 클래스 선언 get , set 사용 실시 - Data Bridge [소스 코드] package ex5; class DataClass{ //전역변수 value 데이터 선언 실시 private String value = ""; public void setData(String value) { //전역변수 value 데이터에 매개변수 value 데이터를 삽입합니다 this.value = value; } public String getData() { //전역변수 value 데이터를 반환합니다 return value; } } public class MainActivity11 { public stat..
[환경 설정 및 설명] 언 어 : Android / Ios 설 명 : 문법 - 클래스 및 구조체 선언해 데이터 모델 (data model) 생성 및 파싱 - Gson , Codable [소스 코드] https://kkh0977.tistory.com/1614?category=990095 280. (AndroidStudio/android/java) GSON 사용해 VO 클래스 객체 매핑 및 JSON 생성 , 파싱 수행 실시 [개발 환경 설정] 개발 툴 : AndroidStudio 개발 언어 : java [Test : 소스 코드] package com.example.testapp; import com.google.gson.Gson; import com.google.gson.GsonBuilde..
[환경 설정 및 설명] 언 어 : Python 설 명 : 문법 - 깊은 복사 (deep) , 얕은 (copy) 복사 수행 [소스 코드] [참고 사이트] https://kkh0977.tistory.com/2226
[환경 설정 및 설명] 언 어 : Swift 설 명 : 문법 - 클로저 (Closure) 특정 기능 수행 코드 블럭 정의 실시 [소스 코드] // MARK: - [테스트 메인 함수 정의 실시] func testMain(){ print("") print("====================================") print("[\(self.ACTIVITY_NAME) >> testMain() :: 테스트 함수 시작 실시]") print("====================================") print("") /* [요약 설명] 1. 클로저 (Closure) 는 중괄호({})로 감싸진 실행 가능한 코드 블럭입니다 2. 클로저는 func 함수 동작 및 내부 로직 처리를 간략 ..