본문 바로가기

IT 공부/공부하며 알게된 사실들11

함수의 본질과 컴퓨팅 사고력 1. 프로그램에서 함수의 중요성 함수는 소프트웨어의 본질이자, 소프트웨어라는 건축을 받치는 벽돌이다. 소프트웨어는 함수의 연속으로 구성되며, 함수가 다시 함수를 호출하는 구조, 즉 재귀적인 구조다. 함수는 정보 처리의 최소 단위다. 소프트웨어의 궁극적인 본질은 무수히 많고 다양한 데이터를 입력받아 일관된 방식으로 계산하거나 처리하고 그 결과를 받아내는 것이다. 따라서 함수를 설계한다는 것 자체가 컴퓨터를 통해 문제를 해결하겠다는 것이다. 결국 프로그래머란 함수를 설계하는 사람이다. 2. 컴퓨팅 사고력과 일반 지능 컴퓨팅 사고력에 관해 오해하지 말아야 할 것은, 컴퓨팅 사고력이 좋다고 해서 반드시 IQ가 높다고 볼 수는 없다는 것이다. 상관관계는 있을 지 모르겠다. 그러나 컴퓨팅 사고력은 순수한 지능적인 .. 2023. 10. 29.
DIP(의존성 역전 원칙)에 대해 지금까지 잘못 알고 있었던 것 같다. 1. DIP와 자바 인터페이스의 의미. DIP란 의존성 역전 원칙(Dependancy Inversion Principle)을 이르는 영어 표현이다. 여기서 의존성이란 소스 코드에 대한 의존성을 말한다. 의존성이 객체지향에서 중요하게 다뤄지는 이유는 한 모듈이 다른 모듈에 의존할 때 변경의 여파가 발생하기 때문이다. 사용하는 모듈A가 사용되는 모듈B에 의존한다. 이때 모듈B의 내용이 변경되면 그것을 사용하는 모듈A도 변경되어야 한다는 압박을 받게 된다. 또 다른 SOLID 원칙 중 하나인 OCP(개방 폐쇄 원칙)는 이러한 의존성의 방향을 일관적으로 관리하는 원칙을 말한다. 우리가 시스템을 여러 모듈과 컴포넌트, 클래스로 분리한 이상 이들이 서로를 의존하는 것은 절대 막을 수 없다. 의존성이 나쁜 것이 아니.. 2023. 10. 19.