Idea

CS 따위는 업무 스킬을 넓혀주지 않았다

문쿼리 2025. 4. 7. 19:19

 

CS를 검색하면 이런 내용들이 나온다

컴퓨터 관련 분야의 지식(Computer Science)이나 서비스업무를 위한 기술지원(Customer Satisfaction)
CS (Computer Science)란, 컴퓨터 관련 분야에서 사용되는 용어, 개념, 알고리즘
CS로 면접 준비하기

보통 개발자 사이에서 말하는 CS는 컴퓨터 과학을 뜻하고,  
자료구조, 알고리즘, 네트워크, 운영체제 같은 기초 이론들이 여기에 포함된다.

 

지금까지 자격증 시험, 면접, 코딩테스트를 준비할 때만 CS 개념을 공부해왔다.  
설계 단계에서 일부 개념을 떠올린 적은 있지만...

실제 개발 코드 안에서 CS 개념을 자연스럽게 활용한 경험은 거의 없었다.

앞으로는 의식적으로라도 개발 중에 CS 개념을 떠올리고, 직접 활용해보는 습관을 훈련해볼 생각이다. (코더의 다짐)

 

실전에 쓰이려면 어떻게해야 머릿속에 잘 저장하고 쏙쏙 뽑을 수 있을까 생각해봤다

(CS를 HashMap에 hash하면 빠르게 꺼내 쓸 수 있다)

그래서 내 방식으로 개념 간의 연관성 그래프를 만들어보려 한다. 

CS를 묶어서 정리하면 좀 더 자유롭게 사고하며 코딩할 수 있지 않을까?

잘될지는 모르겠지만 일단 해보련다

 

아래처럼 연상을 통해 실전 코드를 생각하고 적재적소에 콕콕 쓰는게 목적이다

[상황] 중복 제거 + 정렬 순서 변경이 필요함  
   ↓  
[개념 연상] Set (중복 제거) + Comparator (정렬 기준) + List (정렬 결과 저장) + Stream (함수형 처리)  
   ↓  
[코드1] list.stream().distinct().sorted(Comparator.reverseOrder()).toList();  
[코드2] Set<String> set = new TreeSet<>(Comparator.reverseOrder()); 
    	set.addAll(list);  
[코드3] List<String> result = new ArrayList<>(new LinkedHashSet<>(list)); 
    	result.sort(Comparator.reverseOrder());  
   ↓  
[특정1] 코드1 – 깔끔, 간단한 작업에 적합 (함수형 스타일)  
[특징2] 코드2 – TreeSet은 삽입 시마다 정렬 → 대량 삽입에는 부적합  
[특징3] 코드3 – 지저분(?), 가장 효율적 (해시 + 정렬 분리)

 

 

문제 해결의 도구로서 CS를 활용하는 개발자가 되고싶다

이게 CS 정리를 시작한 이유다

'Idea' 카테고리의 다른 글

SOLID, O:개방-폐쇄 원칙 (OCP)  (0) 2025.05.21
SOLID, S:단일 책임 원칙 (SRP)  (0) 2025.05.21
객체지향 이해하기  (0) 2025.04.16