전체 글(407)
-
(Database) MySQL서버 구조와 스레딩 구조
MySQL을 사용할 때, MySQL은 어떤 방식으로 동작하는지 알고 싶지 않은가? MySQL은 다른 DBMS에 비해서 구조가 상당히 독특하다. Transaction만 봐도 그렇다. Postgresql의 경우, transaction을 적용하고 싶으면, begin과 commit 을 명시해줘야 한다. 하지만 MySQL의 InnoDB의 경우 Transaction을 기본으로 지원하므로, 훨씬 편리하게 사용이 가능하다. 그럼 MySQL 엔진 아키텍처에 대해 알아보자. 🧐MySQL 전체 구조 MySQL은 일반 상용 RDBMS와 같이 대부분의 프로그래밍 언어로 부터 접근 방법을 모두 지원한다. (개꿀) MySQL서버는 크게 MySQL 엔진과 스토리지 엔진으로 구분할 수 있다. MySQL 엔진 MySQL엔진은 커넥션 핸..
2022.07.09 -
(TIL) 20220708, DB트랜잭션과 무결성
🏴Facts(한 것) & Findings(배운 것) 오늘은 DB에 대해서 공부를 했다. MySQL서버 구조와 MySQL 스레딩 구조, 트랜잭션과 무결성 등에 대해 공부했다. 그리고 그 중 인상깊었던 트랜잭션에 관한 글을 남겼다. 아래에서 확인 가능하다.(스압 주의) (Database) 트랜잭션(ACID)과 무결성 구글에 트랙잭션을 검색하면 가장 많이 나오는 말이 있다. "DB의 상태를 변화시키기 수행하는 단위" 그런데 이것 만으로는 트랜잭션에 관해 전혀 감이 오지 않는다. (나만 그런가?) 나는 이 문장 mirrorofcode.tistory.com 오늘 타다 면접을 봤다. 주로 내 프로젝트 관련한 질문이 대부분이었고, 마지막에 컴퓨터 공학 관련 질문(LinkedList와 Array시간복잡도 차이..
2022.07.09 -
(Database) 트랜잭션(ACID)과 무결성
구글에 트랙잭션을 검색하면 가장 많이 나오는 말이 있다. "DB의 상태를 변화시키기 수행하는 단위" 그런데 이것 만으로는 트랜잭션에 관해 전혀 감이 오지 않는다. (나만 그런가?) 나는 이 문장을 접했을 때 드는 생각은 아 DB에 접근하면 다 트랜잭션이구나 트랙잭션 자체의 개념에 대해 이해하지 못하면 스프링 서비스 레이어에 붙이는 @Transactional이나 MySQL에서의 잠금, 동시성에 대한 이해를 할 수 없다고 생각한다. 🧐What is Transaction? 트랙잭션을 이해하는데 가장 도움되는 말은 이것이라고 생각한다. 트랙잭션은 작업의 완전성을 보장해 주는 것이다. 즉, 논리적인 작업 셋을 모두 완벽하게 처리하거나, 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생..
2022.07.09 -
(알고리즘) Big-O, 시간복잡도와 공간 복잡도
알고리즘의 시간과 공간을 측정할 때는 시간복잡도와 공간 복잡도라는 말을 많이 쓴다. 그런데 시간 복잡도는 무엇이며, 공간 복잡도는 무엇일까? 시간 복잡도는 '어떤 일을 수행할 때, 그 일이 완료되기까지 걸리는 시간이 얼마나 복잡한가' 라고 생각하면 편하다. 공간 복잡도는 '어떤 일을 수행할 때, 그 일이 완료되기까지 필요한 공간(메모리)가 얼마다 되는가' 라고 생각하면 된다. 복잡도의 개념에 대해 알았으면, 이를 표기할 방법이 필요하다. 얼마나 복잡한지를 어떻게 표현할 것인가? (하늘만큼 땅만큼 복잡해요) 이때 Big-O의 개념이 등장한다. 🧐Big-O만 있는게 아니다?많은 사람들이 시간 복잡도라고 하면 Big-O를 떠올릴 것이다. 하지만 시간복잡도와 공간복잡도를 나타내는 방법에서는 Big-O만 ..
2022.07.08 -
(TIL) 20220708, Big-O와 시간복잡도/코딩 인터뷰 완전 분석
🏴Facts(한 것) & Findings(배운 것) 6일 밤에 책을 구매했는데, 7일 아침에 책이 도착했다! 책에는 사고력에 관련한 문제부터 CS까지 다양한 문제들이 준비되어 있다. 인터뷰를 준비하는데 많은 도움이 될 것 같다. 학교에 같이 네이버 인턴십에 합격한 친구가 있어서 CS 스터디를 같이 했다. 이번에는 방식을 각자 질문을 가져와서 설명하면서 진행했는데, 다음부터는 미리 질문들을 정하고 이에 대해 무작위로 답해보는 시간을 가져야겠다. 오늘은 Big-O에 대해서 정리했다. 아래에서 확인하자. 🏴Affirmation(자기선언) 🏴여담 Github mikekang47 - Overview BE Developer TDD lover. mikekang47 has 48 reposit..
2022.07.08 -
(TIL)20220706, 운영체제/네이버 인턴십
🏴Facts(한 것) & Findings(배운 것) (운영체제) 운영체제의 개요 운영체제는 프로그래밍의 기본이 되는 것이라고 할 수 있다. 운영체제를 통해서 메모리 구조나 프로그램이 실행되는 방식을 이해하게 되면 코드를 작성할 때, 좀 더 유연한 사고방식으로 코드 mirrorofcode.tistory.com 운영체제를 공부하면서 배운 것을 간략하게 정리했다. 앞으로 더 채워나갈 예정이다. (일단은 면접 대비부터 해야지) 어제 네이버 인턴십 코딩 테스트 및 서류 합격 발표가 났다. 간절함이 통한 것일까, 합격 메일을 받았다! 코딩테스트 문제는 총 4문제였고, 한 문제는 YAML을 작성하는 문제고, 나머지 문제는 알고리즘 문제였다. 마지막 문제가 재밌는 문제였는데, O(n^3)으로 풀이가 뻔히 보이..
2022.07.07