1. ViewModel에 의존성이 필요한 경우 Factory 클래스를 생성하여 hilt로 생성한다. 하지만 아래처럼 바로 ViewModel에 @HiltViewModel을 사용하고 @HiltViewModel class MainViewModel @Inject constructor( private val app: Application, private val schoolRepository: SchoolRepository ): ViewModel() { private val _searchAppBarState: MutableState = mutableStateOf(SearchAppBarState.CLOSED) val searchAppBarState: State = _searchAppBarState private va..
지금까지 개발자를 많이 뽑아왔고 스스로도 면접에 참여한 경험이 많다. 내가 사람을 뽑을 때 생각하는 기준을 적어본다. 사실 이 내용은 현재 대부분의 회사에서 하는 것과는 상반되는 부분이다. 그리고 이렇게 면접이 바뀔 가능성은 별로 없어 보인다. 코딩 테스트 잘해서 뽑았는데, 시키면 할 줄 아는 게 별로 없는 경우가 너무 많지만 현재의 트랜드는 코딩 테스트이다. 현실은 좋은 회사라고 평판이 높은 회사일 수록 코딩테스트를 더 많이, 더 어렵게 보고 있다. 그리고 스타트업들도 이런 식으로 코딩테스트를 준비하는 업체가 많고 실제로 도입하고 있다. 문제는 코딩테스트 이외에 어떤 질문을 해야할지에 대해서는 거의 고민하지 않는다는 느낌이었다. 코딩테스트 아닌 질문의 대부분은 지엽적인 특정 언어의 기능과 새로운 기술을..
이 내용은 그렇게 어렵거나 복잡한 내용이 없다. AWS 권한에 대한 것만 알고 있으면 문제를 수초내에 파악하고 인터넷 검색을 통해 해결할 수 있다. 하지만, 검색물들이 가독성이 그렇게 좋지 않아서 여기 적어 놓는다. 특히 아마존 기술문서에서 해당 부분을 찾기가 쉽지 않다. 1. Beanstalk를 설정할 때 Load Balance 로그를 S3에 저장하도록 설정하는 부분이 있다. 아래처럼 해당 설정을 하고 Environment를 생성하면 2. 생성시 아래와 같이 빈스토크 환경이 제대로 생성되지 않는다. ALB 생성이 실패했는데 보면 S3 버킷에 대한 권한이 없기 때문이다. 3. 해당 버킷에 가서 bucket policy를 설정한다. 위의 설정은 아마존 docs에 나와 있다. { "Version": "201..
1. mysql에서 데이터베이스를 생성하고 유저를 만들어 해당 유저에게 권한을 부여하려고 할 때 아래 에러가 발생한 경우 0 row(s) affected, 1 warning(s): 1285 mysql is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work 2. 대부분의 경우는 docker 환경에서 mysql을 사용할 경우에 발생하는 문제이다. 2-1 일반적으로 'user'@'localhost' 형식으로 유저를 생성하는데 도커 환경은 172.17.0.1 이런 식의 내부 ip를 사용하고 있기 때문에 mysql 서버는 localhost를 172. 로 시작하는 ip를 localhost..
1. 끝단은 무조건 같은 숫자로 구성된 subtree가 된다. 2. 문제는 어떤 변수를 전역으로 둘 것인가이다. 2-1 같은 숫자로 구성된 subtree를 찾으려면 현재 어떤 숫자인지를 우선 가지고 있어야 하고 2-2 현 위치에서 아래의 트리가 같은 숫자로 구성되어 있는지 상태값을 가져야 한다. 2-3 현재까지 몇개의 서브트리를 찾았는지도 알아야 한다. 3. 쉽게 빠지는 유혹은 반환값을 서브트리 판단으로 1을 올리거나 안올리거나를 하고 싶은 유혹이 든다. 그렇게 되면 현 시점에 하위 트리에 대한 정보를 전역으로 보관해야 한다. 3-1 해결이 힘들다. 4. 결론적으로 말하면 재귀적으로 현재 하위 트리가 같은 숫자로 구성된 서브트리인지 true, false를 반환하고, 서브트리 숫자를 전역으로 가지는 것이 ..
1. 동일한 Tree의 PreOrder, InOrder traverse의 결과가 담겨진 배열 2개가 주어질 때 Binary Tree를 만드는 문제이다. 2. 기본적으로 두개의 다른 Traverse 결과가 있으면 바이너리 트리를 만드는 알고리즘은 혼자서 찾기힘들기 때문에 기본적으로 인지하고 있는 것이 중요하다. -> 기본지식 (모르면 인터뷰에서 풀 수 없다.) 3. 문제는 잘 알려진 이 알고리즘을 어떻게 구현할지인데 상당히 까다롭다. 4. 재귀를 사용하여 문제를 풀 때는 Top down과 Botton up 둘 중 하는 사용하는데 일반적으로는 Botton up이 훨씬 직관적이고 많이 사용된다. 5. 이 문제는 Top down 방식을 사용하여 문제를 해결해야 편리하다. 익숙하지 않기 때문에 어려운 것이다. 5..
1. 암호화는 Confidentiality를 보장하기 위해서 사용한다. 1-1 암호화 된 값은 원래 원문의 정보를 가지고 있어야 하기 때문에 원문보다 작을 수 없다. 1-2 보통 plain text는 평문이라고 하는데, cipher text는 한국말로 뭐라고 할지 애매하다. 암호문이라고 하겠다. 2. 암호화에 키를 사용하는 이유 2-1 일반적인 암호화 알고리즘은 단순한 함수형식으로 표현되기 때문에 해시처럼 암호문이 같아져 확장성이 떨어진다. 2-1-1 이 말은 보안성이 떨어질 수 밖에 없고, 표준 알고리즘을 사용하면 모두 같은 결과만 나오게 된다. 2-2 각 사용자마다 다른 암호문의 결과를 얻기 위해서 도입한 개념이 키이다. 각 다른 키는 각 다른 암호문을 만들어 낸다. 2-2-1 키는 랜덤하게 만들어지..
1. 해싱은 Checksum, Fingerprint, Hash, CRC 같은 용어로도 불린다. 1-1 해싱은 메시지를 특정한 방식으로 계산하여 만든 메시지 정보를 저장하지 않는 결과 값이다. 1-2 원본의 정보를 저장하지 않기 때문에 해싱값으로는 원본을 복구할 수 없다. 2. 해싱 알고리즘 요구사항 2-1 특정한 해싱 결과를 임의로 계산하여 만들 수 없다. 2-2 해시 값으로 원 메시지를 추출할 수 없다. 단 방향이다. 2-3 작은 변화가 전체 값을 바꿔야 한다. 2-4 정해진 길이의 값을 반환해야 한다. 3. Collision - 필연적인 현상 3-1 두 다른 메시지가 같은 동일한 결과를 가질 때 3-2 길이가 지정되어 있기 때문에 어떻게든 중복이 일어날 수 밖에 없다. 3-3 따라서 길이가 길수록 안..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib