조건문 if 문 fun max(a: Int, b: Int) = if (a > b) a else b 자바의 삼항 연산자가 없는 대신 if 문을 식으로 사용할 수 있다. 2. when 문 if 문을 중첩하여 사용하기 보다 when 문을 통해 조건을 순차적으로 검사한다. fun hexDigit(n: Int): Char { when { n in 0..9 -> return '0' + n n in 10..15 -> return 'A' + n - 10 else -> return '?' } } 여러 개의 조건 -> 문, 하나의 else -> 문으로 이루어질 수 있다. 자바의 switch와 비슷하지만 값을 선택하는 것이 아닌 임의의 조건을 검사한다. (또한 자바의 폴스루를 지원하지 않음) 하나의 변수만을 비교한다면 wh..
먼저 제 스펙은 입니다. 프로그래밍 직무에 합격했고, 세부 직무는 선택할 수 없었지만 자소서나 포트폴리오에 백엔드 위주로 작성했습니다. 면접까지 가게 된 건 처음이라 아쉬움이 많이 남지만 기록용으로, 그리고 더 부족한 점을 개선하기 위해 후기를 작성해봅니다! 1. 전형 절차 전형 절차는 서류 -> 코테 -> 직무면접 -> SKCT 였습니다. 서류만 내면 코테를 볼 수 있고, 서류 붙으면 면접결과에 상관없이 SKCT를 볼 수 있었기 때문에 사실상 서류/코테 -> 직무면접/SKCT 이렇게 두 차례로 채용이 되는 거네요. 대기업 계열사고 채용연계형인데도 생각보다 절차가 적더라구요. 오히려 좋아 ^^ 2..
https://www.acmicpc.net/problem/2423 2423번: 전구를 켜라 첫째 줄에 문제의 정답을 출력한다. 전구에 불을 켜는 것이 가능하면, 몇 개의 칸을 돌려야 하는지를 출력하고, 불가능할때는 "NO SOLUTION"을 따옴표 없이 출력한다. www.acmicpc.net 문제 선영이는 N × M 직사각형 크기의 전자 회로를 디자인 하고 있다. 회로에는 N × M개의 정사각형 타일이 있고, 모두 직사각형의 변과 평행하다. 모든 타일은 두 개의 마주보는 꼭짓점이 전선으로 연결되어 있다. (그림 참조) 전원은 왼쪽 위 모서리에 연결되어 있고, 전구는 오른쪽 아래 모서리에 연결되어 있다. 전구는 전원에서 전구로 가는 경로가 있을 때만 불이 켜진다. 전구에 불을 켜기 위해서, 선영이는 몇개의..
이분탐색 상한선, 하한선을 구할 때 while 종료조건과 lo/hi를 갱신하는 경우 mid인지, mid + 1인지, mid - 1인지.. 너무 헷갈려서 따로 정리해보려한다. 이분탐색을 수행하기 위해서는 배열이 오름차순 정렬되어야 한다. - 일반적인 이분탐색 (key가 존재하는 위치 반환) static int binarySearch(int[] arr, int key) { int lo = 0; int hi = arr.length - 1; while(lo key) hi = mid - 1; else if(arr[mid] < key) lo = mid + 1; else return mid; } return -1; // key 값이 존재하지 않는 경우 } - 하한선 (key와 같거나 초과하는 값이 처음으로 나타나는 ..
- 안드로이드 리눅스 운영체제 안에서 리눅스와 상호작용하면서 동작 - 안드로이드 vs iOS 개발 안드로이드는 오픈소스를 기반으로 하기 때문에 개발에 대한 제약사항이 적고, ios는 아이폰에만 한정적으로 호환되기 때문에 제한적인 개발 환경을 가짐. - 코틀린 vs 자바 코틀린은 Nullable과 non-nullable이 존재해서 NPE 예외를 방지할 수 있고, 비교적 간결하다. 자바와 완전히 호환된다. 객체지향과 함수형 프로그래밍의 특성 모두 가지고 있음. - 프래그먼트 액티비티 안에 존재하고, 모듈화하거나 재사용할 수 있는 화면 구성요소 - 4대 컴포넌트 BroadcastReceiver 어떤 행위가 발생했을 때 수행되는 방송(브로드캐스트)을 수신하는 객체 (이때 인텐트 필터로 수신자가 구독할 브로드캐스..
- 데이터베이스 파일 시스템의 문제를 해결하기 위해 고안됨. 데이터의 독립성, 무결성, 보안성, 일관성, 중복 최소화 성능은 디스크의 I/O에 좌우. - 인덱스 테이블의 검색 속도를 향상시키기 위해 별도의 메모리 공간에 칼럼의 값과 주소를 키-값 형태로 정렬되어 저장. 탐색은 빠르지만 추가, 삭제, 수정은 느림 B Tree Index: 일반적으로 사용. 칼럼의 값을 변형하지 않고 인덱싱 B-Tree: 균형 트리. 각 노드마다 key와 data를 가짐. B+Tree: 리프 노드에만 key와 data를 가지고 리프 노드는 linkedlist로 연결 Hash Index: 칼럼의 값을 해시 함수로 계산해서 인덱싱. 동등 연산에만 적합 * 카디널리티와 선택도가 높을 수록 인덱스 설정에 적합. 카디널리티: 중복되지..
- 프레임워크 vs 라이브러리 프레임워크: 개발할 때 필수적인 코드나 알고리즘 등의 큰 틀을 제공하는 것. 프레임워크가 흐름을 제어함. 라이브러리: 특정 기능을 모아둔 코드들의 집합. 사용자가 흐름을 제어함. - call by value vs call by reference 값에 의한 호출: 인자로 받은 값을 복사하여 처리 참조에 의한 호출: 인자로 받은 값의 주소를 참조하여 값에 직접 저장. * 자바는 값에 의한 호출이다. 배열, 클래스와 같은 참조형 타입은 그 자체로 주소를 갖고 있기 때문에 값을 복사하여 인자로 전달해도, 값이 변경되는 것. - TDD 매우 짧은 개발 사이클의 반복에 의존하는 소프트웨어 개발 프로세스. 테스트가 코드 작성을 주도하는 개발방식. 새로운 기능에 대한 테스트케이스 작성 -..
- HTTP 데이터를 주고 받기 위한 웹 프로토콜으로, 서버/클라이언트 모델을 따른다. 무상태성 - 서버는 이전의 클라이언트 상태 정보를 저장하지 않음 비연결성 - 서버가 클라이언트의 요청에 대한 응답을 하면 연결을 끊는 것 --> 쿠키, 세션 필요 - 세션/쿠키 차이 쿠키: 클라이언트의 상태 정보를 키-값 형태로 클라이언트 로컬 브라우저에 저장 세션: 클라이언트에게 고유한 ID를 부여하여 서버에 저장 세션은 서버의 처리가 필요하기 때문에 보안측면에서 더 우수하지만, 요청 속도는 쿠기가 더 빠름 - 세션/쿠키 동작 방식 클라이언트가 서버에 접속시 서버에서 세션 ID를 발급 서버는 세션 ID를 기반으로 쿠키를 포함시켜 클라이언트에게 응답 클라이언트는 서버에 요청할 때 이 쿠키를 같이 전달 서버는 쿠키의 세..