[Swift] 함수와 클로저
·
iOS/Swift
보호되어 있는 글입니다.
[Swift] 옵셔널(Optional)
·
iOS/Swift
옵셔널(Optional)Swift가 가진 가장 큰 특징 중 하나가 바로 옵셔널(Optional)이다. 이 옵셔널은 값이 있을 수도 있고 없을 수도 있다는 것을 나타낸다. 예를 들어 문자열의 값이 있으면 "가나다"가 되지만, 값이 없다면 ""가 될까? 답은 아니다. ""도 엄연히 값이 있는 문자열이라고 할 수 있다. 값이 없는 문자열을 nil 이라고 한다. 또 다른 예를 들어 정수형의 값이 있으면 100과 같은 값이 존재할 것이다. 값이 없다면 0이 될까? 0은 0이라는 숫자 '값'이기 때문에 값이 없는 정수 또한 nil 이다. 하지만 모든 변수에 nil을 넣을 수 있는 것은 아니다.var name: String = "Soo"name = nil 'nil' cannot be assigned to type '..
[Swift] 조건문과 반복문
·
iOS/Swift
조건문조건을 검사할 때에는 if, switch를 사용한다.var age = 20var student = ""if age >= 8 && age  if문의 조건절에는 값이 정확하게 참, 거짓으로 나오는 Bool타입을 사용해야 한다. Swift는 타입 검사를 엄격하게 하기 때문에 다른 언어에서는 사용 가능한 !number 같은 코드는 사용하지 못한다.  !number 대신 number == 0을 사용하면 컴파일 에러가 나지 않는 것을 확인할 수 있다. 빈 문자열이나 배열 등을 검사할 때도 길이가 명확하게 0인지 아닌지를 검사해야 한다.if name.isEmpty { ... }if languages.isEmpty { ... }   반복문switchSwift의 switch구문은 Java와는 다르게 패턴 매칭이 가..
[Swift] 변수와 상수
·
iOS/Swift
변수와 상수변수(variable)는 값을 수정할 수 있고 상수(constant)는 값을 수정할 수 없기 때문에 Swift에서는 안전하게 상수를 사용하는 것을 권장하고 있다. 변수는 var로 선언하고, 상수는 let으로 선언한다.var name = "Soo"let birthYear = 2024 var로 선언한 name은 이름을 바꾸고 싶을 때 바꿀 수 있지만, 태어난 해를 바꾸려고 할 땐 컴파일 에러가 발생한다.name = "Sooo"birthYear = 2023 // Compile Error!Cannot assign to value: 'birthYear' is a 'let' constant  let 키워드로 선언된 상수의 값을 변경할 수 없다는 에러이므로 바뀌면 안 되는 값은 상수로 정의해두자.  Sw..
[Security] Spring Security란?
·
Back-End/Security
Spring Security란? 스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증, 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 인증과 권한에 대한 부분을 Filter 흐름에 따라 처리한다. 그리고 보안과 관련된 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안관련 로직을 작성하지 않아도 된다는 장점이 있다.   Architecture사용자는 Form을 통해 로그인 정보를 입력하고 인증 요청을 보낸다.AuthenticationFilter는 HttpServletRequest에서 사용자가 보낸 아이디와 패스워드를 인터셉트해서 넘어온 로그인 정보의 유효성 검사를 한다. HttpSerlvetRequest에서 꺼낸 사용자 정보를 인증용 객체(Userna..
[프로그래머스] 크레인 인형뽑기 게임 - JAVA
·
Algorithm/프로그래머스
풀이import java.util.Stack;class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; Stack stack = new Stack(); for (int i : moves) { for (int j = 0; j   이 문제는 stack을 사용하면 쉽게 풀 수 있다.풀면서 헷갈리게 만드는 점이 두 가지 있었는데 풀면서 문제가 참 불친절하다고 생각했다...우선 제일 헷갈렸던 건 행렬인데 i가 행, j가 열인 줄 알고 풀었다가 대차게 틀리고 그림을 그려보고 확실하게 이해하게 됐다. 문제의 예시를 인형뽑기 크레인처럼 놓아본다면 아래와 같다. Row ..