최신 글
소프트웨어 아키텍처 the hard parts는 2021년도에 출판된 소프트웨어 아키텍처 101 책의 후속 편이다. 저자 닐포드, 마크 리처즈의 책으로써 이번 hard parts에서는 프라모드 세달라지, 세약 데그하니가 저자로 추가되어 총 4명의 저자가 쓴 현대적인 소프트웨어 아키텍처의 advanced 기술 서적이다. 모든 문제가 하나하나 새로운 도전을 요하기에 어떻게든 문제를 해결하려는 중대한 의사 결정의 양편에 치우친 수많은 트레이드오프를 냉정하게 판단하고 평가할 때 아키텍트의 진가가 드러납니다. 소프트웨어 아키텍처에서는 최고의 설계를 고집하지 마세요. 그 대신 나쁜 것 중에서 제일 나은(least worst) 트레이드 오프 조합을 찾으세요. 26p 책 시작부에 나오는 이야기로써, 사실 시스템 또는 ..
얼마 전 youtube를 보면서 시간을 보내다가 토비님의 영상을 보게 되었다. State of Spring 2022 내용에 대해 리뷰하는 내용이었는데, 꽤 재미있게 보기도 하였고 Spring 생태계에 대해서 이해할 수 있는 참고 자료이기도 하여 간략하게 리뷰를 해보려고 한다. State of series 우선 State of Spring은 VMware 회사에서 설문조사를 진행하고 정리한 통계 발표 자료이다. 사실 VMware의 자료는 처음 접한 상태였는데 구글링을 해보니 State of Kubernetes, State of observability등 다양한 시리즈가 있었다. 이 글의 첨부된 이미지들은 모두 State of Spring 2022 pdf에 포함된 내용들이다. 설문조사의 49%가 유럽 그리고 ..
위키피디아에 의하면 주석이란 소스 코드를 더 쉽게 이해할 수 있게 만드는 것이 목적인 메모를 말한다. 주석 또는 코멘트는 프로그래밍에 있어 내용을 메모하는 목적으로 쓰인다. 소스 코드를 더 쉽게 이해할 수 있게 만드는 것이 주 목적이며, 협업할 때 유용히 쓰인다. 컴파일러와 인터프리터에 의해 일반적으로 무시되어 프로그램에 영향을 주지 않는다. 위키백과 하지만 주석 때문에 소스코드를 더 이해하기 어려울 수 있다. 예를 들어, 1. 코드의 의도가 명백하여 오히려 주석이 중복 내용에 가깝다. "XX를 출력합니다, XX를 가져옵니다. XX를 처리하고 응답합니다."등이 있다. 2. 주석이 관리가 되지 않아 소스코드의 내용과 전혀 다른 설명을 하게 된 경우이다. 너무나도 슬픈 사실인데 소스코드를 수정하는 사람이 주..
IT News
-
Stackoverflow 2021년 개발자 설문 조사
세계적으로 영향력 있는 QnA 서비스이자 커뮤니티인 stacoverflow는 매년 개발자 설문을 진행하여 웹사이트에 공유한다. 아래는 응답자 상위 10개 국가이다. 북미, 인도, 유럽 등이 주요 응답자들이다. 전 세계 대상의 설문조사라고 하지만 전문적인 샘플링 아니기 때문에 내용 자체는 일부 국가에만 맞는 내용일 수 있다. 개발 트렌드에 대한 소소한 인사이트를 얻을 수 있는 자료 또는 참고용으로 보면 좋다. Years coding 약 10년차를 기점으로 10년 차 미만이 50% 10년 차 이상이 약 50% 비율을 갖는다. 전 세계적으로 10년 차 넘게 일하고 있는 개발자들이 생각보다 많음을 알 수 있다. 개인적인 경험으로 우리나라에서도 10년 이상 경력자들이 과거 대비 꽤 늘어나고 있어 긍정적인 하나의 ..
-
Django framework 3.2 LTS 릴리즈
4월 6일, Django 3.2 마이너 버전이자 3.X의 LTS 버전이 릴리즈 되었다. 이번 릴리즈에는 편의 기능들이 다소 많이 포함되었는데 그 중 가장 반가운 소식은 ORM에서 AutoField에 설정에 대해서 전체 설정을 할 수 있게 됬다는 점이다. AutoField, 즉 PK가 기본값이 int이기 때문에 각 Model마다 BigAutoField로 재정의 해야하는 귀찮음(?)이 있었는데 간단한 설정으로 기본값을 변경할 수 있게 되었다. 이번 마이너 릴리즈의 주요 변경사항은 아래 3가지이다. AppConfig 자동 발견 Django에서는 하나의 프로젝트에 여러개의 앱을 운용할 수 있게 지원하고 있다. python manage.py startapp [APP_NAME] 명령으로 기본 뼈대를 만들어낼 수 있..
-
JQuery 3.6 릴리즈와 4.0 준비
jquery/jquery jQuery JavaScript Library. Contribute to jquery/jquery development by creating an account on GitHub. github.com 지난 2020년 4월 3.5 릴리즈 이 후 거의 1년만에 JQuery 3.6이 릴리즈되었다. jQuery는 오랜 시간 파편화된 브라우저의 DOM을 단일 코드로 문제 없이 다룰 수 있게 하여 빠른 생산성과 안전성을 제공하는 섹시한 javascript 라이브러리였다. 하지만 이제는 ECMAScript 표준을 준수하는 웹 브라우저들이 많고 성능적인 이슈도 있기 때문에 jQuery가 프로젝트를 진행할 때 필요한가라는 질문에 쉽게 예스라고 말할 수는 없을 것이다. 또한 ajax를 위해서도 많..
-
Amazon EC2 T4g 인스턴스 서울 리전 출시
EC2는 AWS에서 제공하는 Virtual Machine이다. Amazon Elastic Compute Cloud(Amazon EC2)이 풀 네임이다. Ealstic에 E 그리고 Compute Cloud에 대문자 C가 두번 들어가서 EC2라고 불리운다. 이렇게 반복 문자를 숫자로 대체하는 것이 AWS 서비스 이름의 특징이다. EC2는 목적에 따라서 다양한 버전을 제공하는데 이번에 T4 시리즈가 출시되어 서울리전에서 사용할 수 있게 되었다. EC2 T familty는 순간적으로 성능을 Burst할 수 있는 기능을 제공하고 사용한 만큼 가격을 내는 인스턴스 타입이다. 예를 들어 평상시에 적은 컴퓨팅 파워로 운용이 가능하지만 상황에 따라 순간적으로 CPU 파워를 사용하여 어느정도 대응이 가능하도록 설계 되었는..
-
Wireshark 2.0 릴리즈
Wireshark와 X11 MacOS에서는 Wireshark를 실행시키기 위해서는 X11이 필요했다. X11은 OS X 10.5~ 10.7까지만 사용된 윈도우 시스템이라 기본적으로 설치되어 있지 않다. Wireshark를 사용하기 위해서 X11을 설치를 해야하고 심지어 X11이 동작하는데까지 2-3분이상 기다려야하는 불편함을 겪어야 했다. Wireshark 2.0 2.0부터는 X11가 아닌 MacOS 어플리케이션으로 직접 실행이 되기 때문에 X11을 별도로 설치하거나 오랜 시간을 기다리지 않아도 된다. 그리고 프로그램을 시작하면 첫 페이지에 인터페이스별 캡쳐되고 있는 현재 상태가 그래프로 표시된다. 아래는 https://www.wireshark.org..
리뷰 글
-
소프트웨어 아키텍처 the hard parts
소프트웨어 아키텍처 the hard parts는 2021년도에 출판된 소프트웨어 아키텍처 101 책의 후속 편이다. 저자 닐포드, 마크 리처즈의 책으로써 이번 hard parts에서는 프라모드 세달라지, 세약 데그하니가 저자로 추가되어 총 4명의 저자가 쓴 현대적인 소프트웨어 아키텍처의 advanced 기술 서적이다. 모든 문제가 하나하나 새로운 도전을 요하기에 어떻게든 문제를 해결하려는 중대한 의사 결정의 양편에 치우친 수많은 트레이드오프를 냉정하게 판단하고 평가할 때 아키텍트의 진가가 드러납니다. 소프트웨어 아키텍처에서는 최고의 설계를 고집하지 마세요. 그 대신 나쁜 것 중에서 제일 나은(least worst) 트레이드 오프 조합을 찾으세요. 26p 책 시작부에 나오는 이야기로써, 사실 시스템 또는 ..
-
마이크로서비스 아키텍처 구축 가이드
마이크로서비스란? 마이크로서비스는 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식입니다. 이러한 서비스는 독립적인 소규모 팀에서 보유합니다. 마이크로서비스 아키텍처는 애플리케이션의 확장을 용이하게 하고 개발 속도를 앞당겨 혁신을 실현하고 새로운 기능의 출시 시간을 단축할 수 있게 해 줍니다. - AWS - 마이크로서비스란 소프트웨어를 구축하기 위한 아키텍처이자 하나의 접근 방식으로, 애플리케이션을 상호 독립적인 최소 구성 요소로 분할합니다 - Redhat - 마이크로서비스란 단어가 사용되기 시작한지는 대략 10년정도 됬지만 널리 알려진지는 얼마 되지 않았다. 마이크로서비스가 없는 세상에서는 서비스/앱 개발..
-
스프링 부트 실전 활용 마스터
개발 관점에서 성능은 크게 cpu bound, i/o bound 2가지 주제로 나눌 수 있다. cpu bound는 cpu 연산을 주로 말하기 때문에 실제 컴퓨터의 성능과 직접적으로 연관이 있지만 i/o bound는 디스크나 외부 네트워크와의 통신 등으로 실제 컴퓨터의 연산과는 다소 거리가 있다. 웹 생태계에서는 과거부터 주로 사용되었던 동기식 요청을 처리하기 위해 다수의 process(또는 thread)가 활용되었는데, 대용량 트래픽이 인입된다면 그에 맞게 process 또는 thread가 함께 생성되어야 하며, cpu보다는 늘어난 메모리가 문제가 되는 현상이 발생하게 된다. 이러한 대규모 i/o 이슈를 해결하기 위해 비동기 처리가 많이 활용되고 있다. Java에서는 Spring boot 버전 2부터 W..
-
UX/UI 디자이너를 위한 실무 피그마
UI 개발 담당이 아니더라도, 백엔드 엔지니어들도 개발 설계시 Figma의 내용을 확인하고 활용하게 된다. 기획자의 설계 의도를 파악하고 UX/UI를 함께 체크하여 필요한 서버 컴포넌트 또는 API들이 무엇이 있을지 설계해야 하기 때문이다. 기획 의도와 배경 그리고 전체적인 구조는 PPT 또는 글로 확인해도 의미가 잘 전달되지만 상황에 따른 흐름 확인은 실시간적으로 figma로 확인하고 커뮤니케이션하는 게 훨씬 업무 적용에 빠르다. 또한 웹에서 바로 화면을 볼 수 있기에 접근도 매우 용이다. 이 책은 디자인학과를 졸업하고 독학으로 Sketch를 익혀 UI/UX 세계에 입문한 저자가 쓴 Figma의 실무 활용 서적이다. "1장 피그마 시작하기"에서 간단한 figma 설명과 더불어 디자이너, 기획자, 개발자..
-
오늘부터 IT를 시작합니다
"화성에서 온 남자 금성에서 온 여자"라는 책이 있다. 남녀관계 바이블으로써 서로의 차이점을 이해할 수 있도록 다양한 사례를 설명하고 적절한(?) 가이드를 이야기하는 책이기도 하다. 사실 남녀관계뿐 아니라 함께 일하는 조직 문화에서 각자의 전문 분야가 있다면 이 또한 화성, 금성, 수성 등을 따져야 할 수 있다. 예를 들어 개발자와 디자이너, 기획자와 디자이너, 기획자와 개발자, 개발자와 QA 엔지니어 등 다양한 관계에서 문제가 생길 수 있다. 문제 해결에 있어 첫 번째 중요한 점은 문제 정의이며, 문제 정의를 위한 중요한 한 가지는 서로의 상황을 이해하려고 하는 노력이라고 생각한다. "오늘부터 IT를 시작합니다"는 서로의 상황을 이해할 수 있도록 도와주는 책이라고 생각한다. 특히나 비전공자가 읽었을 때..
인기 글
-
[SQL] 사용자별 제일 마지막 데이터 조회하기
때때로 사용자 기준으로 제일 마지막 데이터 조회가 필요할 때가 있다. 다양한 방법이 있을텐데 SQL로 간결하게 데이터를 조회할 수 있는 방법을 정리하려고 한다. 결론부터 말하면 사용자 ID를 기준으로 group by를 하고 나서 그 중 updated_at 필드가 가장 큰 값을 조건으로 데이터를 찾으면 된다. 예를 들어 가상의 테이블을 하나 만들어서 확인해보자. 아래는 사용자별 과목에 대한 점수를 저장하는 테이블이다. create table test_score ( id bigint(11) auto_increment comment 'PK' primary key, user_id bigint(11) round int, subject varchar(30), score int, created_at datetime ..
-
ps명령어를 통하여 thread 정보를 확인하는 방법
개발하는데 있어서 thread를 사용하는 경우가 많다. "나는 thread가 필요 없어!" 하는 분들도 한번쯤은 보면 나중에 우연히 만나게 될 때 조그마한 도움(빠른 원인분석등)이 될수 있다. ps 명령어를 사용하면 linux 시스템의 프로세스 정보들을 얻을 수 있다. 시스템을 운용하는 사람들에게 있어서도 유용히 사용되는 정보인데, 이러한 ps 명령어에서 해당 프로세스가 thread정보를 함께 출력하게 정보를 얻을 수 있다. ps -eLf | grep testsrv UID PID PPID LWP C NLWP STIME TTY TIME CMD root 2588 2587 2588 0 11 00:05 ? 00:00:07 ./testsrv root 2588 2587 2589 2 11 00:05 ? 00:23:1..
-
살면서 꼭 해야할 재미있는 일 10가지
"살면서 꼭 해야 할 재미있는 일 10가지"란 책은 저자 캐롤 수녀가 1987년 인디애나 주 노트르담에 있는 세인트메리대학에서 강연한 원고를 기반으로 책으로 만들었다. 원제인 Ten Fun Things to Do Before You Die (Paperback, Reprint) 책이 2000년도에 나온 것을 보면 약 13년이란 시간이 지난 뒤 책으로 정리된 것을 알수 있다. 내가 구매한 책은 초판으로써 2019년도에 나온 책이고 2022년도에 읽었는데 이를 계산하면 초기 원고로부터 약 35년 뒤에 책으로 보게 된 셈이다. 책 표지가 귀엽고 너무 깔끔하여 35년 전에 정리된 이야기라는게 믿어지지 않았다. 그리고 이 당시 강연을 들었던 대학생들은 50~60대가 되었을 테니 그들의 삶에 어떤 영향을 끼쳤을지 문..
-
Linux 개발환경 - vim 사용법
vim이란 간단히 말해 텍스트 에디터이다. 기존 터미널 환경의 vi라는 에디터에서 기능 개선 및 확장이 되었고, 그래서 이름이 "vi + improvement = vim"이다. 현재 터미널을 통하여 하는 개발 도구 중 개발에 필요한 도구중에 하나로써, 다중화면 컨트롤과 정규식을 사용한 텍스트 변경 그리고 다양한 플러그인을 통하여 터미널을 통한 개발 환경에서의 텍스트 에디터로써 많이 사용되고 있다. 아래는 vim에 대한 기본적인 사용법과 개발에 있어서 자주 사용하게 되는 키에 대한 가이드글이다. vim 사용법 실행방법 vim 명령어를 통하여 실행할 수 있다.(파일이름을 생략해도 상관없음) vim [File_name] 사용모드 vim에서는 텍스트를 입력/수정이 가능한 편집모드와 명령를 내릴수 있는 명령 모드..
-
완성된 웹사이트로 배우는 HTML&CSS 웹 디자인
프로그래밍 언어를 공부하는 방법은 여러 가지가 있을 텐데, 필자가 좋아하는 방식은 개별 기능에 대한 작은 코드를 작성해보고 그 뒤 실제 환경과 유사한 미니 프로젝트를 개발해보는 것이다. 기본이 되는 내용은 공식 홈페이지나 별도 서적을 통해 습득한 뒤 바로 직접 개발을 하는 것이 가장 실용적이었다. 이러한 관점에서 본다면 이 책은 기능에 대한 코드와 미니프로젝트 중간쯤이라 말할 수 있으며 개발자가 빠르게 숙련될 수 있도록 기초 내용부터 설명하고 코드를 작성할 수 있게 도움을 준다. 2~3장까지 읽었을 때 일본에서 만들어진 IT 책들이 생각이 났다. 과하다 싶을 정도로 쉽고 친절하게 설명하는 책들을 많이 봤는데 이 책 또한 비슷한 인상을 받았다. 마지막 장까지 다 읽었을 때에는 숙련된 개발자가 옆에서 멘토링..