자료구조
실무에서 자주 사용하는 List, Set, Map 에 대해 간단히 정리해 본다. List 순서가 있는 컬렉션으로 중복을 허용한다. 구현체 별 특징 특성 ArrayList LinkedList Vector 메모리구조 동적 배열 이...
실무에서 자주 사용하는 List, Set, Map 에 대해 간단히 정리해 본다. List 순서가 있는 컬렉션으로 중복을 허용한다. 구현체 별 특징 특성 ArrayList LinkedList Vector 메모리구조 동적 배열 이...
정렬 알고리즘에는 많은 방식들이 있고, 각 정렬마다 시간복잡도가 다르다. 선택 정렬(Selection Sort) 선택 정렬(Selection Sort)은 데이터 정렬에서 기본적인 방식 중 하나로, 단순하면서도 비교적 이해하기 쉬운 방식으로 작동한다. 정렬 방식 선택 정렬은 제자리 정렬 알고리즘의 하나로, 순서는 다음과 같다. 주어진 리스트...
코딩테스트를 준비하면서 프로그래머스 코딩테스트 문제풀이 전략를 읽고 테스트에 중요한 개념인 시간복잡도에 대해 정리한 글입니다. 시간복잡도란? 시간복잡도는 알고리즘이 수행되는 데 걸리는 시간과 입력 데이터의 크기(n) 사이의 관계를 나타내는 개념이다. 이는 알고리즘의 효율성을 판단하고, 더 많은 데이터가 주어졌을 때 프로그램이 얼마나 오래 걸릴지...
인벤의 한 게시글을 보고 작성한 글입니다. 미터기는 어떻게 작동하며 막을 수 있나? 딜 미터기란? 딜 미터기는 MMORPG와 같은 게임에서 플레이어가 전투 중에 가한 피해량(DPS: Damage per Second)을 측정하는 도구이다. 이를 통해 플레이어는 자신의 성능을 분석하고, 더 효율적인 플레이를 추구할 수 있다. 대표적인 예로, 월드 오브...
인프런 워밍업 클럽 스터디 2기 - 백엔드 클린 코드, 테스트코드(Java, Spring Boot) 과정 중 Practical Testing: 실용적인 테스트 가이드를 듣고 요약한 내용입니다. 코드의 전문은 github에서 볼 수 있습니다. Layerd Architecture란? Presentation Layer, Business Layer, Per...
대 AI의 시대 ChatGPT는 2022년 11월 30일에 출시된 LLM(Large Language Model)이다. 출시 초기에는 할루시네이션(잘못된 정보 제공) 문제가 있었음에도 불구하고, ChatGPT가 구글 검색을 대체할 것이라는 논의가 일어나기도 했다. 2년이 지난 지금은 성능이 훨씬 개선된 모델들이 등장하며, 일부 직업군에서는 AI가 직업...
Practical Testing: 실용적인 테스트 가이드를 듣고 요약한 내용입니다. TDD 테스트 주도 개발 Test Driven Development 프로덕션 코드보다 테스트 코드를 먼저 작성하여 테스트가 구현 과정을 주도하도록 하는 개발 방법론 RED → GREEN → REFACTOR 실패하는 테스트 작성 ...
Practical Testing: 실용적인 테스트 가이드를 듣고 요약한 내용입니다. 테스트란? 테스트를 하는 이유, 필요한 이유 빠른 피드백 자동화 안정감 테스트 코드가 없다면? 변화가 생기는 매순간마다 발생할 수 있는 모든 Case를 고려해야 한다. 변...
Readable Code: 읽기 좋은 코드를 작성하는 사고법를 듣고 요약한 내용입니다. 주석의 양면성 리팩토링 시, 큰 난관 중 하나는 히스토리를 전혀 알 수 없는 코드다. 의사 결정의 히스토리를 코드로 표현할 수 없을 때, 주석으로 설명 주석을 작성할 때, 자주 변하는 정보는 지양 주석이 없는 코드보다 부정확한 주...
Readable Code: 읽기 좋은 코드를 작성하는 사고법를 듣고 요약한 내용입니다. 상속과 조합 상속보다 조합을 사용하자! 상속은 시멘트처럼 굳어지는 구조다. 수정이 어렵다. → 부모와 자식의 결합도가 높다. 조합과 인터페이스를 활용하는 것이 유연한 구조. → 중복이더라도 유연한 구조 »» ...