목록전체 글 (591)
어흥
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/147354 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 주의할 점 - 행과 열이 0이 아닌 1부터 시작한다 - 한번은 오름차순 정렬, 한번은 내림차순 정렬이다 - 원소들의 합에 대한 mod 연산이 아닌, 각 원소의 mod 연산에 대한 합이다 - 첫 mod 합은 XOR 연산을 수행하지 않는다 2. 구현 - 조건에 따른 정렬을 하는 우선순위 큐를 사용한다 - 해시값에 대해서 XOR 연산을 계속해서 수행한다 #include #includ..
처리율 제한 장치란? 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제한하기 위한 장치 예시 1. 사용자는 초당 2회 이상 새 글을 올릴 수 없다 2. 같은 IP 주소로는 하루에 10개 이상의 계정을 생성할 수 없다 3. 같은 디바이스로는 주당 5회 이상 리워드를 요청할 수 없다 처리율 제한 장치를 설치하면 좋은점은? - DoS(Denial of Service) 공격에 의한 자원 고갈을 방지할 수 있다 - 비용을 절감한다. 적당한 서버 수, 서드 파티 요청하는 API 감소 - 서버 과부하를 막는다 처리율 제한 장치 구현 1단계: 문제 이해 및 설계 범위 확정 면접에서 처리율 제한 장치 설계에 관한 질문이 들어왔을 때, 지원자가 물어볼만한 사항 1. 어떤 종류의 처리율 제한 장치를 설치해야 ..
명심할 점: 정해진 결말이나 정답은 없다 1단계: 문제 이해 및 설계 범위 확정 - 깊이 생각하고 질문하여 요구사항과 가정들을 분명히 하라 - 올바른 질문, 적절한 가정 그리고 시스템 구축에 필요한 정보를 모아라. 가정을 한다면 종이나 화이트보드에 꼭 메모해둔다 올바른 질문 예시 1. 구체적으로 어떤 기능을 만들어야 하는가? 2. 제품 사용자 수는 얼마나 되는가? 3. 회사의 규모는 얼마나 빨리 커지는가? 3,6,12개월 뒤의 규모는 어느정도인가? 4. 회사가 주로 사용하는 기술 스택은 무엇인가? 설계를 단순화하기 위해 활용할 수 있는 기존 서비스로는 어떤 것이 있는가? 예제 뉴스 피드(news feed) 시스템을 설계하라는 요구를 받았다. 이때 다음과 같은 순서로 질문 할 수 있다 1. 모바일 앱 웹 ..
1. 개략적인 규모 추정을 하는 이유? 보편적으로 통용되는 성능 수치상에서 사고 실험을(thought experiments) 행하여 추정치를 계산하는 행위 어떤 설계가 요구사항에 부합할 것인지 보기 위함 2. 규모 확장성에 필요한 기본기 (1) 2의 제곱수 최소 단위: 1Byte = 8Bit (2) 응답지연 값 ns = nanosecond, µs = microsecond, ms = milisecond 1ms = 1,000µs = 1,000,000ns 위 표를 통해 얻을 수 있는 점 - 메모리는 빠르지만 디스크는 아직 느리다 - 디스크 탐색은 피하자 - 단순한 압축 알고리즘은 빠르다 (3) 가용성에 관계된 수치 고가용성이란 시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력으로, %로 표현..
1. 스프링 컨테이너란? 스프링 빈을 관리하는 컨테이너로, 기본적으로 스프링 빈을 싱글톤 스코프로 관리한다. 스프링 빈을 저장하는 방식은 아래와 같다 그렇다면 Singleton이 아닌 매 요청마다 새로운 객체를 생성해서 반환해주는 Prototype Bean Scope는 어떻게 생성되고 관리될까? 2. Prototype Scope 프로토타입 빈의 생성 과정 #1. 빈 등록: 프로토타입 스코프의 빈은 스프링 컨테이너에 미리 등록된다. 빈의 등록은 스프링의 XML 설정 파일이나 Java Config를 통해 이뤄진다 #2. 빈 요청: 다른 빈이 프로토타입 빈을 필요로 할 때, 해당 빈을 얻기 위해 스프링 컨테이너에 요청한다 #3. 빈 생성: 프로토타입 빈의 요청이 들어오면 스프링 컨테이너는 새로운 빈 인스턴스를..
문제 링크: https://leetcode.com/problems/next-permutation/description/ Next Permutation - LeetCode Can you solve this real interview question? Next Permutation - A permutation of an array of integers is an arrangement of its members into a sequence or linear order. * For example, for arr = [1,2,3], the following are all the permutations of arr: [1,2,3], leetcode.com 1. 순열의 순서는 어떻게 정해질까?에 대한 의문을 직접 구..
1. 타입 캐스팅 타입 비교 형변환 Java instanceof / !(A instanceof B) (타입) Kotlin is / !is as 타입 [Java] public String getName(Object obj){ if(obj instanceof Person){ Person person = (Person) obj return person.getName(); } return ""; } [Kotlin] fun getName(obj: Any): String { if(obj is Person){ return obj.name() } return "" } 2. 특이한 타입 1) Any - 모든 객체의 최상위 타입(Primitive, Reference Type 모두의 최상위) 자바의 Object와 비슷하지만..
1. 3가지 처리 방법 1. Safe call ?. 2. Elvis 연산자 ?: 3. Null이 아님을 표현하는 연산자(하지만 Null이 들어오면 NPE) !! 2. 예시 #1 [유사 Java 코드] fun startsWithHttp1(str: String?): Boolean { if(str==null){ throw IllegalArgumentException("Null 입력") } return str.startsWith("http") } [Kotlin] fun startsWithHttp1(str: String?): Boolean { return str?.startsWith("http") ?: throw IllegalArgumentException("Null 입력") } #2 [유사 Java 코드] fu..