728x90
SOLID는 여전히 중요하다소프트웨어 설계의 다섯 가지 핵심 원칙인 SOLID는 명명된 지 20여 년이 지나가고 있지만, 여전히 개발자들에게 중요한 기준으로 자리잡고 있다. 최근 카카오뱅크의 안드로이드 개발자도 이를 언급하여, SOLID 원칙이 소프트웨어 설계에서 어떤 시사점을 제공하는지 강조한 바 있다. 모든 개발자가 알아야 할 SOLID의 진실 혹은 거짓기술 면접 자리에서 SOLID 5대 원칙에 대한 질문을 받아보신 분이라면 주목! 이 글에서는 SOLID 원칙의 역사와 장점, 그리고 각각의 원칙에서 중요한 점을 면접 상황 예시를 통해 가볍게 풀어보았습tech.kakaobank.com 다만 SOLID가 설계 품질을 높이기 위한 지침일 뿐, 모든 프로젝트에서 반드시 지켜야할 필수 요건이라거나 법이란 건..
Thread, Process, Core는 많을수록 좋을까보통 이러한 질문은 느낌상 '아니니까 묻는 것 같은데' 라는 직감을 준다.만약 누군가 이 각각이 많을수록 어떠한 영향을 줍니까?라고 물어보면 단순히 생각했을 때 Core는 뇌의 역할이니까 뇌가 많을수록 처리량이 많을 것 같고, 한 프로그램 내에 Process가 여러개로 있다면 병렬처리할 기회가 많이 생길 것 같아서 괜찮을 것 같고, Thread가 여러 개라면 이 또한 병렬처리에 유리할 것 같다. 그러한 생각이 틀렸는가를 판단하기 위해서 각각을 살펴본다. Thread가 많으면 어떨까Thread는 크게 하드웨어 입장과 소프트웨어 입장에서 생각할 수 있다. 여기선 소프트웨어 입장으로서 Process 내의 Thread라고 해해보자. 우리는 Thread가 ..
2024년, 가장 설레었던 말'참 잘한다.' 4년 전, 진로가 분명히 정해진 날부터 나는 누군가에게 필요한 사람이 되길 바랐고 어디에선 내 역할이 인정받는 순간이 오길 원했다. 그 마음은 함께하는 분들께 듣는 응원섞인 칭찬보다도, 내 연차나 직위를 알고 계시지 않았던 분께 단기간에 위 말을 들음으로써 내 욕심이 채워지는 도파민에 키보드를 두드림에도 되려 심장이 뛰는 마법을 느꼈다. 하지만 시간이 지나 겸손을 챙겨 회상하려 돌아보니, 그 한마디를 들을 자격이 있었는지 스스로에게 의문이 들었다. 내겐 그럴듯한 스킬이 존재하지 않았다. 능숙하고 깊은 전문성과 지식력을 갖춘 게 아니었음에, 곱씹을수록 시간이 지날수록 당시의 도파민이 우습고 창피했다. 그럼에도 내가 그 말을 들을 수 있었던 이유를 생각하면, 나는..
인덱스저번에 말한 바와 동일하게 이런 특징이 있다B-Tree 등의 자료구조 기반의 효율적인 탐색이 가능하다특정 열(Column)에 대해 정렬된 형태로 저장하여 검색 속도를 높인다데이터가 많아질수록 index의 유무가 쿼리 성능에 큰 영향을 미친다그리고 이제 이 인덱스는 그 특징에 따라 분류할 수 있다. 클러스터/비클러스터(Cluster/NonCluster) 인덱스 잘 알려진 지식으로 테이블의 PK는 보통 인덱스 설정이 되어있음을 우린 알고 있다. 이와 관련하여 클러스터/비클러스터 유형이 있는데, 이 PK가 '클러스터 인덱스' 유형에 속한다. ✔️ 클러스터 인덱스간단히 그렸다. 그림을 보면- 인덱스 페이지 내에서 Root 노드는 PK(id)를 Key로, Page에 위치에 대한 포인터를 갖고 있다.-..
Dart의 const와 finalFlutter를 시작하려면 Dart 언어를 알아야하는데, 기본적인 자료형 외에도 필수로 적할 키워드가 있다.바로 const와 final인데 이 두 키워드는 불변성을 나타내고 있지만 사용목적은 다르다. Java나 JavaScript를 이미 해 본 사람이라면 이 키워드 자체는 익숙한데 또 그것과 다른 점도 있다. ✔️ final의 특징런타임을 포함해 한 번만 할당 가능하다final로 선언된 변수는 한 번만 값을 할당할 수 있다. 할당 시점은 런타임을 포함해 언제든 가능하지만 그 이후 다시 변경할 수 없다.final name = 'Flutter'; name = 'Dart'; // Error: name is final and cannot be reassigned.위는 선언 시 할..
시작은 쪼끄맣게뭐든지 성취는 작은 것부터 하랬다. 당장에 결과를 볼 수 있는 세미 프로젝트부터 해봤다.JS로 만드는 환율 계산기이며 성취할 목록은 아래와 같다. - 크롬 앱을 만든다- 환율 변환 OpenAPI를 이용한다- 사용자는 A통화로부터 B통화로 변환시킬 수 있어야 한다- 사용자는 최근 사용한 통화목록을 조회할 수 있어야 한다 로고부터 만들어보자 Microsoft Designer - Stunning designs in a flashA graphic design app that helps you create professional quality social media posts, invitations, digital postcards, graphics, and more. Start with your..