본문 바로가기

분류 전체보기66

2021 라인 공채 1차면접 후기 이 글은 라인 채용을 준비중이거나, 혹은 추후에 참고하실 분을 위해 작성되었다. 나 역시 준비하며 좋은 글을 읽으며 도움을 많이 받았고, 한편으론 그래도 후기가 많이 부족해 답답함을 느꼈기 때문이다. 다만 정확한 내용을 모두 올릴 수는 없으므로, 대략적인 이야기만 하려고 한다. 일정 2021 라인 공채의 일정은 위와 같다. 지원서 접수때에는 도움이 되도록 각 부서를 소개하는 영상을 Line Careers 유튜브 채널에 업로드해 주셨는데, 부서를 선택하는데에 있어 도움이 많이 되었다. 혹시 라인에 지원하게 된다면 꼭 미리 보고 가기를! 흥미로운 기술적 도전에 대한 이야기도 많고, 면접자가 아닌 한명의 팀원으로서 어떤 사람과 일하고 싶은지 구체적으로 이야기해 주셔서 좋았다. 서류 질문은 다른 회사와 크게 차.. 2021. 10. 22.
[JPA] 비관적 락과 낙관적 락, 트랜잭션의 격리 수준 얼마 전 면접에서 질문을 받았지만 전혀 몰랐던 비관적 락과 낙관적 락 개념. 다행히 김영한님의 자바 ORM 표준 JPA 프로그래밍에서 관련 내용을 소개하고 있어, 참고하여 정리해 보았다. 이 글은 다음 내용을 다룬다. 트랜잭션의 격리에 대해 알아본다. 낙관적 락과 비관적 락에 대해 알아본다. 트랜잭션과 격리 수준 트랜잭션은 ACID라고 하는, 원자성, 일관성, 격리성, 지속성을 보장해야 한다. 그 중 격리성의 경우, 동시에 실행되는 트랜잭션들이 서로에게 영향을 끼치지 못하게 격리한다 라는 의미를 가진다. 사실 이를 제일 완벽히 구현하는 방법은 트랜잭션이 여러 개일때 순차적으로 실행하는 것이지만, 이는 성능에 너무 큰 영향을 준다는 점. 그래서 트랜잭션의 격리는 4단계로 나눠서 수행하게 된다. 이에 대해서.. 2021. 10. 15.
DB 커넥션 풀과 HikariCP 며칠 전에 면접을 봤는데, 거기서 커넥션 풀에 대한 질문이 나왔다. 그런데 대답을 잘 못해서 아쉽기도 했고, 면접 직후 찾아보니 HikariCP에 대한 이야기도 나오길래 어? 맨날 springboot 켜면 나오는 hikari가 커넥션 풀을 관리해주는 거였어? 하고 관심을 가지게 됐다. 그래서 이번 글은 커넥션 풀과 hikariCP에 대한 소개. DB 커넥션 풀 커넥션 풀은 데이터베이스와 연결된 커넥션을 미리 만들어 풀에서 관리하고, 필요시 이를 사용하고 반환하는 기법이다. 이는 데이터베이스 연결 수행 및 읽기/쓰기 작업에 관련된 오버헤드를 줄이는 것이 주 목적인 데이터 엑세스 패턴이다. 또한 이는, 가장 기본적인 수준의 DB 연결 캐시라고 할 수 있다. 이렇게만 들으면 감이 안올텐데, 일단 예시를 먼저 .. 2021. 10. 14.
jobLauncher로 Job 실행시 runIdIncrementer가 작동하지 않는 경우 이 글은 다음 상황에 대처한 경험을 작성한 글이다. Spring Batch 사용 중, Job을 JobLauncher로 실행했을 때 실행되지 않는 경우를 확인했다. runIdIncrementer가 작동하지 않았음을 확인하고, 이에 대한 조치를 수행했다. Job의 중복 실행 Spring Batch의 경우, Job과 Step에 대한 실행 기록을 DB의 메타 테이블에 저장한다. 그리고 job 실행 시 해당 테이블을 조회하여, 만약 job의 parameter가 이전에 실행된 job의 parameter와 동일하다면 해당 job을 실행하지 않는다. 처음에는 왜 이런 번거로운 옵션이 있을까, 하고 난감했다. 하지만 다시 생각해 보니, 위 옵션을 통해 우리는 아래 상황을 방지할 수 있다. 파라미터 별로 한 번만 수행되어.. 2021. 10. 12.
H2로 SpringBoot 테스트 도중 SQL이 실행되지 않는 경우 대응법 이 글은 다음 상황에 대처한 경험을 작성한 글이다. MySQL, PostgreDB 등에서 사용하던 SQL이 H2 DB에서 실행되지 않는 경우를 확인한다. H2 모드를 조정하여 테스트 환경 등에서 쿼리가 정상 실행되도록 한다. 여러 환경에서의 DB 운영 현재 졸업 프로젝트를 진행하면서, 아래처럼 DB 환경을 나눠 구축하고 있다. application.yml에서 여러 yaml 파일을 import하여 관리한다. application-prod.yml에서 운영서버 실행 환경을 설정한다. DB는 MariaDB를 사용하며, flyway를 사용한다. application-local.yml에서 로컬 실행 환경을 설정한다. DB는 MySQL을 사용하며, flyway를 사용한다. application-test.yml에서 테.. 2021. 10. 8.
Amazon AWSOME DAY 참여 후기 오늘은 아마존에서 진행하는 AWSOME DAY 온라인 컨퍼런스에 참여했다. 얼마 전부터 광고가 떠서 관심있게 지켜보고 있었는데, 아무래도 온라인으로 진행하다 보니 편한 점이 많았다. 실시간 스트리밍으로 강의를 듣고, 1:1로 전문가에게 QnA를 보낼 수 있었다. 오전 9시 ~ 12시, 오후 2시 ~ 5시 두 개의 타임이 진행되었다. 다양한 언어로 컨퍼런스가 진행되었다. 한국어 세션 뿐 아니라 영어나 독어 등으로 진행되는 세션도 있는게 신기했다. 영상은 세션이 끝난 뒤에 다시 볼 수 있게 업로드된다. 나는 오전 세션을 신청했지만, 개인 사정으로 접속하지 못했다. 그럼에도 다시보기 영상이 올라와서 다행히 저녁 시간때에 볼 수 있었다! 자막도 친절하고, 강의 내용도 좋아서 집중해서 쭉 볼 수 있었다. AWSO.. 2021. 10. 1.
반응형