# basic
[Basic] File, Stream 의 이해
실무, 개인프로젝트 모두에서 파일과 관련하여 파일 읽기, 저장,삭제, 수정 등 다양한 일을 진행하였습니다. 하지만, 개념적인 부분이 늘 부족하다고 느껴졌습니다. 요번에는 파일 IO 에 대해 공부해보도록 하겠습니다.목차File 이란, File의 종류Stream 개념 파일
LinkedList 의 특징과 예제
Leet code를 연습하던중 기본 자료구조인 LinkedList에 대한 이해를 가지려고 배운것을 토대로 블로그에 남기게 됩니다.링크드 리스트(Linked List)는 데이터를 노드(Node)에 담아 연결하여 저장하는 자료구조입니다. 링크드 리스트를 사용하면, 노드 간
Dreamhack reversing Day2
rev - Basic -3 핵심 키워드: 어셈블리어 분석, 16진수 변환 계산 코드(파이썬, c언어) ㄱㅂㅈㄱ correct를 출력하는 입력값을 찾는 문제다. 일단 파일을 다운로드하고 x64dbg에서 열어보자. 
react-native animation
0 -> 100 을 만드는 건데1\. AnimatedBox를 만들고2\. AnimatedBox에 움직이는 설정을 style={{transform: {translateY: Y}}} 로3\. 그 Y의 기초값 0은 const Y = new Animated.Value(0)

키패스(keyPath) & 셀렉터(selector) & 메타 (Meta)
키경로(문자열 처럼 쉽게 만들수 있는 인스턴스)로 속성에 쉽게 접근AnyKeyPath : 어떤 속성인지 특정되지 않음(보통, 함수 파라미터형식으로만 사용)PartialKeyPath : 타입에 대한 키패스(예를 들어 배열 같은 것으로 묶을때 사용)KeyPath<Ro

Never타입
함수의 return의 의미 (일반적인 경우)(함수의 결과로 인한) 값을 리턴함수 내부로 전달했던 CPU실행의 제어권을 다시 돌려줌Nonreturning(논리터닝) 함수:제어권을 전달하지 않음(함수를 호출했던 코드로 다시 제어권을 전달하지 않음)명시적으로 제어권을 전달하

주요 프로토콜
주요 프로토콜 Equatable / Comparable / Hashable Equatable : ==, != 비교 연산자 관련 프로토콜 Comparable : , =) Hashable : hash값을 갖게되어 값이 해셔블(값이 유일성을 갖게됨)해짐 Equatabl

주요 프로토콜
Equatable : ==, != 비교 연산자 관련 프로토콜Comparable : < 연산자 관련 프로토콜 (>, <=, >=)Hashable : hash값을 갖게되어 값이 해셔블(값이 유일성을 갖게됨)해짐Equatable 프로토콜의 요구사항은static f

메모리 안전 Memory Safety
멀티쓰레드(Multi Thread)의 환경에서만 메모리 충돌이 일어나는건 아님구조체 등의 메서드에서 self(동일한 인스턴스)에 접근하는 경우 접근 충돌값 타입은 속성 하나가 아닌, 인스턴스 전체에 대한 읽고/쓰기로 접근 ⭐️

고급연산자(Advanced Operators)
스위프트의 숫자 리터럴을 표기하는 방법2진법/8진법/16진법의 수도 직접 써 넣을 수 있음큰숫자는 읽기 쉽게하기위해 언더바를 붙이는 것도 가능(단순히 언더바를 읽지않음)플랫폼 사양에 따르는 타입 : Int, UInt (최근 대부분 64비트)8-bit : Int8, UI

문자열과 문자 String & Character
유니코드(Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준스위프트는 유니코드의 체계를 사용스위프트의 문자열(String)?쌍따옴표 안에 문자(Character)들을 연결모든 문자열은 개별 인코딩된 유니코드 문자들(e

접근제어 Access Control
애플이 자신들이 원하는 코드를 감출 수 있음코드의 영역을 분리시켜서 , 효율적 관리 가능컴파일 시간이 줄어듬( 컴파일러가 , 해당 변수가 어느 범위에서만 쓰이는지를 인지 가능)코드의 세부 구현 내용을 숨기는 것이 가능하도록 만드는 개념(객체지향 - 은닉화가 가능해짐)(

Result type
에러가 발생하는 경우, 에러를 따로 외부로 던지는 것이 아니라리턴 타입 자체를 Result Type(2가지를 다 담을 수 있는)으로 구현해서함수 실행의 성공과 실패의 정보를 함께 담아서 리턴case success(연관값)case failure(연관값)에러는 동일하게 정

제네릭(Generics)
제네릭이 없다면, 함수(클래스, 구조체, 열거형 등)타입마다 모든 경우를 다 정의해야 하기 때문에개발자의 할일이 늘어난다. (유지보수/재사용성 관점에서 어려움)제네릭 문법형식에 관계없이, 한번의 구현으로 모든 타입을 처리하여, 타입에 유연한 함수 작성가능 (유지보수/재

에러 처리
컴파일 타임 에러 —> 스위프트 문법과 관련된 에러(컴파일러가 미리 알고 수정해야한다고 알려줌)런타임 에러 —> 프로그램이 실행되는 동안 발생타임 에러 —> 크래시(앱이 강제로 종료)발생가능한 에러를 미리 처리해 두면, 강제종료되지 않음 (개발자가 처리해야만

메모리 관리
예전 언어들은 모든 메모리를 수동 관리했음실제로 개발자가 모든 메모리 해제 코드까지 삽입해야함 (실수할 가능성 높음)retain() 할당 ---> release() 해제 (RC +1) (RC -1) 개발자는 실제 로직 구현 포함, 메모리 관리에

옵셔널 타입의 응용
옵셔널타입에 대해 접근연산자를 사용하는 방법옵셔널타입에 대해, "접근연산자"를 사용할때, ?(물음표)를 붙여서, 앞의 타입이 값이 nil을 가질 수도 있음을 표시 옵셔널체이닝의 결과는 항상 옵셔널이다.옵셔널체이닝에 값 중에서 하나라도 nil을 리턴한다면, 이어지는