본문 바로가기

분류 전체보기179

[Kotlin 20200803] 객체 지향 프로그래밍 해당 내용은 Do it! 코틀린 프로그래밍 책을 공부하며 인용 및 정리한 것입니다. 저의 개인적인 견해나 의견이 포함되어 있습니다. 코드는 되도록 책을 보고 응용해서 작성했습니다. 05_3 상속과 다형성 상속의 장점 : 상위 클래스의 있는 내용을 하위 클래스에서 다시 구현하지 않아도 됨 다형성 장점 : 하나의 이름으로 다양한 기능을 수행할 수 있음 상속과 클래스의 계층 - 파생 클래스(하위 클래스)에서는 기반 클래스(상위 클래스)와 다른 프로퍼티와 메서드만 추가하여 사용해도 됨 - 코틀린의 최 상위 클래스 Any 클래스 -> 상위 클래스를 명시하지 않으면 Any 클래스를 상속 받음 - 코틀린에서 상속할 수 있는 클래스를 선언하려면 open 키워드 사용. open 키워드를 적지 않을 경우 기본 클래스로 선.. 2020. 8. 3.
[Kotlin 20200802] 객체 지향 프로그래밍 - 클래스와 객체 참고 및 인용 도서 : Do it! 코틀린 프로그래밍 및 개인적인 견해 코틀린은 함수형 프로그래밍, 객체 지향 프로그래밍을 지원한다. 객체지향 프로그래밍은 순차적으로 수행되는 절차적 프로그래밍과 다르게 복잡한 프로그램을 작성할 수 있다. 05_1 클래스와 객체의 정의 객체 지향 프로그래밍 개념 1. 추상화(Abstraction) : 특정 클래스 만들 시 기본 형식을 규정하는 방법. 목표로 하는 대상에 대해 필요한 만큼 속성과 동작을 정의하는 과정 2. 인스턴스 : 클래스를 만든다고 객체가 메모리에 존재하지 않음. 클래스로부터 생성한 객체를 인스턴스라 하며 인스턴스를 생성해야 프로그램 메모리에 객체가 존재하게 되는 것 3. 상속 : 부모 클래스의 내용을 자식 클래스가 물려받는 것을 말하며 부모 클래스의 속.. 2020. 8. 3.
[Kotlin 20200730] 프로그램 흐름 제어 인용 및 참고 서적 : Do it! 코틀린 프로그래밍 조건문 if문과 if~else문 if (조건식) { // 만일 수행하는 문장이 하나인 경우 블록 구문인 중괄호 생략가능 } else { } val answer = if (a > b) a else b 와 같이 한줄에 표현 가능하며 변수에 할당할 수 있음 블록의 표현식이 길어질 때 - 조건문 블록 표현 길어지면 중괄호로 - 변수에 if문을 할당할 경우 블록의 마지막 표현식이 변수에 반환되어 할당 val answer = if () { // 마지막 문장이 반환되어 answer이라는 변수에 할당됨 } else if문으로 조건문 중첩 readLine() : 콘솔로 부터 문자열을 입력받는 함수 입력받은 값의 기본 자료형은 String(문자열 타입) !!. : no.. 2020. 7. 30.
[Kotlin 20200729] 함수형 프로그래밍 공부 람다식과 고차 함수 호출하기 - 기존 기본형 변수 : 할당 값은 스택에 저장됨. 인자로 전달하는 경우 값은 복사 되어 전달 - JVM 은 포인터 주소 연산 없음 -> 값을 복사하여 객체 전달. 이때 복사되는 값은 객체의 주소 값에 의한 호출 - 함수가 다른 함수의 인자로 전달 되는 경우 -> 인자로 전달되는 함수는 즉시 수행하여 값을 전달(값으로 처리되기 때문) - 인자로 전달되는 시점에서 실행 됨 - 람다식 함수의 즉시 실행 - 매개변수에 직접 람다식을 함수 호출 형태로 작성해 줌 ex) val sum = a(lambda()) val lambda: () -> Unit = {} 이름에 의한 람다식 호출 - 실제로 호출할 때 실행 - 변수명에 람다식 자체가 매개변수에 복사됨 (즉시 실행 안하고 전달만 하려.. 2020. 7. 29.
자원 고갈 공격 SYN 플러딩 (SYN Flooding) 소프트웨어 개발 보안 설계시 고려해야 하는 자원 고갈 공격 중 SYN 플러딩이 있다. 이는 TCP 프로토콜의 구조적인 문제를 이용하여 공격을 시도한다. SYN 플러딩에 의해 시스템 자원이 고갈 되면서 정상 요청에 대해 대응하지 못하게 된다. 우선 이에 대해 자세히 알기 위해서는 위에서 말한 TCP 프로토콜의 구조적인 동작 원리를 알아두면 이해가 쉽다. 정상적인 클라이언트-서버와의 연결 웹 페이지가 있다고 하자. 이때 클라이언트가 정보를 얻기 위해 웹 페이지로 접근한다. 즉 쉽게 말해 클라이언트란 서비스를 요구하는 쪽이다. 서버는 이 웹 페이지를 통해 정보나 서비스를 클라이언트에게 제공한다. 클라이언트는 우리가 직접 마주하고 있는 단말 기기나 컴퓨터라 생각하고 서버는 서비스를 제공해주는 업체의 컴퓨터라 생.. 2020. 7. 27.
물리테이터 저장소 설계 물리적 공간 데이터가 기억 장치에 저장이 될 때 주소를 가지게 되는데 이때 이 기억 영역을 물리적 공간이라 함 +) 주소의 종류 1. 논리 주소 : 물리 주소의 상대적인 개념. 물리적인 주소와 다르게 사용자가 부여한 사용자 관점의 주소로서 실제 주소와 구분됨 2. 물리 주소 : 기억장치에 저장된 데이터에 접근할 때 사용되는 주소. 실제 메모리 공간을 말함 3. 상대 주소 : 상대적인 주소로서 절대 주소와 상대적이 개념. 고정된 절대 주소를 사용하는 것이 어려 울 때 사용함 4. 절대 주소 : 실제 주소 해시 해시 함수는 임의의 데이터를 넣었을 때 고정된 길이의 데이터로 매핑하며 이를 사용한 해시 자료구조는 key와 value에서 key를 고정된 길이의 해시 값으로 매핑한다. 정렬이 필요 없으며 이 해시값.. 2020. 6. 15.
Could not locate device support Files 해결하기 xcode보다 휴대폰 버전이 더 높아서 생기는 문제입니다. xcode 업데이트 하면 좋겠지만 부득이하게 저처럼 업데이트를 할 수 없다면 아래 방법으로 시도해 봅시다 우선 안내 문구를 살펴보면 iOS 13.3.1 support file이 필요한 것을 알 수 있습니다. 아래 링크로 들어가 주세요 https://github.com/filsv/iPhoneOSDeviceSupport filsv/iPhoneOSDeviceSupport Xcode iPhoneOS DeviceSupport files (6.0 - 13.3). Contribute to filsv/iPhoneOSDeviceSupport development by creating an account on GitHub. github.com 이곳에서 안내 문구에.. 2020. 2. 25.
Xcode 이전 버전 다운로드 받기 로그인 - Apple idmsa.apple.com 위 사이트에 접속하여(로그인 필요) Search Downloads에서 원하는 버전을 다운 받습니다. 압축을 푼 뒤 응용 프로그램으로 드래그 앤 드롭 해줍니다. 응용 프로그램에서 아이콘 더블 클릭해서 사용하면 됩니다. 2020. 2. 25.
[react native 개발환경 구축하기] 6. android studio AVD에서 react-native app 실행하기 안드로이드 스튜디오를 켜줍니다. 목록에서 두번째에 있는 Open an existing Android Studio project를 눌러줍니다! 저번에 만들어 두었던 react native 프로젝트 파일을 탐색해 보면 android 아이콘이 보입니다. 눌러 주고 ok버튼을 눌러 주세요 처음 안드로이드 스튜디오를 실행 시켰다면 애뮬레이터, 즉 가상머신이 없습니다. 가상머신 AVD를 만들어 주겠습니다. 상단에 실행 버튼 옆에 No devices를 클릭해 주세요. 그 후 Open AVD Manager을 눌러 줍니다. Create Virtual Device...를 눌러주세요 한 가운데 있는 버튼 입니다. 가장 많이 사용하는 것 같은... Nexus 5X로 가상 디바이스를 만들어 주겠습니다. 버전은 Pie로 해주겠습.. 2020. 2. 22.
[react native 개발환경 구축하기] 5. react native 설치 중간 점검 해주겠습니다. cmd 창을 열고 아래와 같이 입력하여 설치한 것이 제대로 깔렸는지 확인합니다. node.js를 깔았으므로 cmd에서 npm 명령어를 사용할 수 있습니다. cmd에서 위와 같이 입력해 줍니다. 프로젝트를 만들 위치에 폴더를 만들어 줍니다. 폴더 경로를 복사한 뒤 cmd에서 cd명령어를 통해 해당 폴더로 이동해 줍니다. cd로 reactNative폴더까지 들어옵니다. cmd에서 위와 같이 입력하면 test라는 react native 프로젝트를 생성합니다. 위에서 생성한 폴더로 들어가면 test라는 프로젝트 폴더가 생긴 것을 확인할 수 있습니다. test폴더를 들어가면 위와 같이 설치 된 것을 확인할 수 있습니다. 2020. 2. 22.
[react native 개발환경 구축하기] 4. node.js 설치 구글에서 node js를 검색하여 바로 아래에 나오는 링크를 누르거나 아래 첨부된 링크를 눌러 홈페이지로 이동합니다. https://nodejs.org/ko/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 안정화 버전을 다운로드 받겠습니다. 왼쪽 초록색 버튼 12.16.1을 눌러주세요(2020.02.22 기준) Next 버튼을 눌러 주세요 라이센스 동의 후 Next를 눌러 주세요 기본 경로에 설치해 주겠습니다. 계속 next를 눌러 주세요 chocolatey 설치를 묻는 창입니다. 별도의 설치 없이 넘어가겠습니다. Next install을 눌러 주세요 관리자 모드로 설치하는 것이기 때문에.. 2020. 2. 22.
[react native 개발환경 구축하기] 3. java와 python 설치 자바 설치는 아래 링크를 참고해 주세요. java 설치하기 + 환경변수 설정하기 (jdk) 구글에 jdk download라고 치시면 이렇게 나옵니다. 링크 클릭 아래 링크 클릭해도 됩니다. Java SE - Downloads | Oracle Technology Network | Oracle Java API Documentation Updater Tool 1.3 Java API Docume.. youbidan-project.tistory.com 저는 아나콘다를 깔아서 파이썬 환경을 구축했습니다. 파이썬 설치와 변수 설치를 아나콘다가 해줍니다. window에 아나콘다 설치하기(Python, deep learning 개발 환경, Jupyter notebook) 아나콘다는 데이터 분석을 위한 라이브러리를 쉽게 .. 2020. 2. 22.