전체 글 127

[swift] 타입 캐스팅 (형 변환)

https://youtu.be/V6-WmAh4Y1E?list=PLJqaIeuL7nuFbWKMhG8-xLzF1T7gIPr8Z 요새 이 채널에서 swift, ios 개발 영상을 열심히 보고 있다. 매번 swift 로 올리는 글도 이 채널의 영상들을 보고 정리하는 것이다. 대학교 강의인 것 같은데 요새는 유튜브에서 여러 강의들이 영상으로 올라오니 무엇이든 배우기 좋은 것 같다. 형 변환(casting)은 as 라는 키워드를 사용한다. 형 변환에는 upcasting, downcasting이 있는데 위를 부모 클래스 아래를 자식 클래스 라고 생각하면 upcasting, downcasting이 무엇인지 쉽게 추측할 수 있다. upcasting은 어떤 객체를 부모 클래스의 객체로 형 변환 하는 것이고 (부모 클래스

swift & iOS/swift 2022.01.10

[swift] Any, AnyObject

Any 모든 인스턴스를 다 표현 클래스, 구조체, 열거형, 함수 모두 가능 let arr: [Any] = [1, 2, "ha", true] AnyObject 클래스의 인스턴스만 표현함 (구조체 x , 열거형 x) protocol 중에 AnyObject 인 경우가 있는데 클래스에서만 채택되도록 하기 위해서임 // 아래처럼 작성할 수 없음. Int, String, Boolean 모두 구조체이기 때문 let arr: [AnyObject] = [1, 2, "ha", true] 포함하는 정도로 보자면, Any > AnyObject > NSObject

swift & iOS/swift 2022.01.10

xss, csrf 간단하게

xss cross site scripting: 자바스크립트 공격 예: 글쓰기 버튼 클릭 -> 글 작성 화면 -> 글 작성 이 때 글 작성할 때 같은 자바스크립트 코드를 넣어서 작성함 csrf 예: 하이퍼링크 이용.. 방지방법: 1 주소에 다 드러나는 get 방식 말고 post 방식 2 같은 도메인에서 들어온 요청이 아니면 다 차단 (header에서 referrer 검증) 3 csrf 토큰 사용 (스프링 시큐리티에서는 csrf 토큰 없으면 무조건 접근 차단함)

[Spring boot] localhost:8080 로그인 창이 뜰 때

스프링 부트로 서버도 잘 동작시켰고 localhost:8080 으로 접속도 되는데 자꾸 위와 같은 로그인 창이 뜰 때가 있다. 이 주소에 대한 모든 접근을 스프링 시큐리티가 일단 막고 보는 것이다. 위와 같은 로그인 창이 보였을때 로그인 하려면, ide에서 스프링 서버를 동작시킬 때 나오는 로그 중에 'Using generated security password:...' 같은 부분이 있다. username은 user라고 입력하고 password는 'Using generated security password: ' 에 이어서 나오는 아주 긴 비밀번호를 입력해서 로그인하면 된다. 아예 이런 로그인 창이 뜨지 않게 하려면 build.gradle 파일에서 아래 두 줄을 주석처리 하면 된다. (maven이면 po..

Java & Spring boot 2022.01.09

[swift] 옵셔널 optional 간단 정리

참고: https://www.youtube.com/watch?v=V6-WmAh4Y1E&list=PLJqaIeuL7nuFbWKMhG8-xLzF1T7gIPr8Z&index=26 옵셔널(optional)은 변수/상수에 아무런 값이 할당되지 않는 상황을 안전하게 처리하기 위한 방법이다. 그리고 옵셔널 타입이어야 nil을 할당할 수 있다. var a = nil 이렇게 작성하면 에디터에 에러가 나타난다. a가 옵셔널 타입임을 명시해준 후에야 nil을 할당할 수 있다. var a : Int? a라는 옵셔널 Int 형의 변수를 선언한 것이다. 이 변수에는 Int 형의 값을 할당할 수도 있고 값이 없을 수도 있다. (nil) 만약 a에 값을 할당하면 그 값은 옵셔널로 감싸지게 된다. a = 10 print(a) // O..

swift & iOS/swift 2022.01.08

[swift] 튜플(tuple) 생성과 값 접근하는 방법

튜플: 여러 값을 하나의 객체에 일시적으로 묶는 방법 * 다양한 타입을 한 튜플에 담을 수 있다. let myTuple = (10, 21.12, “hi”) * 튜플의 각 값에 접근하는 방법은 . 을 이용한다 let str = myTuple.2 // "hi" * 위처럼 각 값에 하나씩 접근할 수도 있지만 아래처럼 튜플의 모든 값을 한꺼번에 변수에 할당할 수도 있다. (자바스크립트의 구조분해할당 같은 느낌) let (age, width, greeting) = myTuple let (age, _, greeting) = myTuple // _ 언더스코어는 ‘무시한다’ 라는 뜻 * 튜플 생성할 때 각 값에 이름을 부여할 수 있고 그 이름들은 값에 접근할 때 사용할 수 있다. let testTuple = (heig..

swift & iOS/swift 2022.01.08