[일상] CS50’s Introduction to Databases with SQL 강좌 수료 [쿼리 튜닝과 DB 설계의 재발견]
·
◐ 기타/개발자의 일상🎈
This is CS50 SQL. Spring Boot와 MyBatis/JPA를 주력으로 사용하다 보면, 편리한 추상화 뒤에 숨어 'DB가 어떻게 동작하는지'를 간과하기 쉽습니다. 하지만 시스템의 병목은 결국 I/O에서 발생하고, 쿼리 한 줄이 전체 서비스의 레이턴시(Latency)를 좌우합니다.하버드 CS50 Introduction to SQL 과정을 통해, 단순히 문법을 익히는 것이 아니라 RDBMS의 내부 아키텍처와 옵티마이저(Optimizer)의 관점에서 데이터를 다루는 법을 재정립했습니다.* 이 과정은 특정 DBMS 툴 사용법이 아니라, 관계형 데이터베이스(RDBMS)의 보편적인 원리를 다룹니다.과정의 마지막은 실제 서비스를 가정한 DB 설계를 수행하는 것이었습니다.설계 주안점확장성을 고려한 테이..
[일상] CS50’s Introduction to Programming with Python 강좌 수료 [단순 문법을 넘어, 파이썬 애플리케이션 구축까지]
·
◐ 기타/개발자의 일상🎈
This is CS50P. 현업에서 Java를 주로 다루고 있지만, 최근 AI나 자동화 툴 때문에 파이썬의 필요성을 느꼈습니다. 기왕 하는 거 '그냥 돌아가는 코드' 말고 '파이썬다운(Pythonic) 코드'를 짜고 싶어서 하버드의 CS50P를 수강했습니다.(OMSCS 준비를 위한 기초 다지기 목적도 있었고요!) 과정의 마지막으로 'PyLock'이라는 CLI 기반 파일 암호화 도구를 만들었습니다. 터미널에서 명령어로 파일을 암호화/복호화하는 툴인데, argparse로 인자를 처리하고 cryptography 라이브러리로 보안성을 챙기는 과정이 꽤 재밌었습니다. CS50P는 파이썬의 문법을 떼는 것을 넘어, '어떻게 하면 더 우아하고 효율적인 코드를 짤 것인가'를 고민하게 해준 과정이었습니다. 파이..
[일상] CS50’s Introduction to Cybersecurity 강좌 수료 [개발자가 다시 짚어본 보안 엔지니어링의 본질]
·
◐ 기타/개발자의 일상🎈
This is CS50 Cybersecurity. 개발자로서 코드를 작성할 때 우리는 종종 '기능 구현'과 '성능 최적화'에 매몰되곤 합니다. 하지만 견고한 시스템 아키텍처는 기능성만큼이나 무결성(Integrity)과 가용성(Availability), 그리고 기밀성(Confidentiality)이 보장될 때 완성됩니다.최근 하버드 대학의 CS50 Introduction to Cybersecurity 과정을 수료하며, 단순히 '보안 툴을 쓰는 법'이 아닌, 로우 레벨(Low-level)에서의 메모리 관리부터 하이 레벨(High-level)의 웹 취약점까지 보안의 기술적 원리를 재정립하는 시간을 가졌습니다.* CS50 Cybersecurity는 보안 전문가를 위한 과정이라기보다, '보안을 아는 개발자'가 되..
[일상] CS50’s Introduction to Computer Science 강좌 수료 [개발자라면 꼭 한 번은 봐야 할 명강의]
·
◐ 기타/개발자의 일상🎈
This is CS50. 현업에서 수년간 개발을 하다 보면, 당장의 프레임워크나 라이브러리 사용법에 매몰되기 쉽습니다. "이게 왜 이렇게 동작하지?"라는 근원적인 질문보다는 "어떻게 구현하지?"에 집중하게 되죠. 하버드 대학교의 데이비드 말란(David J. Malan) 교수가 진행하는 CS50(Introduction to Computer Science)는 컴퓨터가 데이터를 처리하는 가장 밑바닥(Low-level)의 원리부터 시작해, 현대적인 웹 애플리케이션(High-level)까지 쌓아 올리는 과정을 통해 'Computational Thinking(컴퓨팅 사고)' 그 자체를 적립하는 과정이였습니다. 압도적인 강의 퀄리티: 데이비드 말란 교수의 전달력과 무대 장악력은 TED 강연 이상입니다.탄탄한 기..