본문 바로가기

컴퓨터11

클린코드 - 시스템 도시가 돌아가는 이유는 적절한 추상화와 모듈화 때문이다. 또한 각 분야의 팀 때문이다. 소프트웨어 팀도 도시 처럼 구성한다. 그런데 막상 팀이 제작하는 시스템은 비슷한 수준으로 관심사를 분리하거나 추상화를 이뤄내지 못한다. 깨끗한 코드를 구현하면 낮은 추상화 수준에서 관심사를 분리하기 쉬워지는데, 이번 부분에서는 높은 추상화 수준, 즉 시스템 수준에서 깨끗함을 유지하는 방법을 살펴본다. 제작은 사용과 다르다. 시작은 관심사 분리로 시작한다. 불행히도 대다수 어플리케이션은 시작 단계라는 관심사를 분리하지 않는다. 초기화 지연, 계산 지연이라는 기법이 있다. 실제 필요할때까지 객체를 생성하지 않으므로 불필요한 부하가 걸리지 않는다. 또한 어떤 경우에도 null 포인터를 반환하지 않는다. 예를 들어 아래와 같.. 2024. 2. 2.
클린코드 - 클래스에 관하여 그 이전까지에서는 깨끗한 표현력과 코드행, 블록을 작성하는 방법에 초점을 맞추었다면, 여기서는 더 높은 차원에 관련된 부분인 클래스에 대해 다루는 내용이다. 왜냐면 코드는 결국 행과 열로 구성되어 있지만 좀 더 높은 차원에서 연결과 응집성, 설계와 클린코드를 고려하지 않으면 깨끗한 코드를 얻기 어렵기 때문이다. 프로그램은 신문기사 처럼 읽히는 것이 좋다는 것은 앞에서 설명하였다. 클래스를 정의하는 표준 자바 관례에 따르면, 정적 상수, 정적 비공개 변수, 비공개 인스턴스 변수 등과 같은 변수목록에서 시작해 (공개 변수가 필요한 경우는 거의 없다.) 공개 함수, 비공개 함수(자신을 호출하는 공개 함수 직후에 넣는다.) 순으로 순차적으로 내려간다. 그래서 이와 같이 추상화 단계가 순차적으로 내려가기 때문에 .. 2024. 2. 2.
클린 코드 - 단위테스트에 대하여 클린코드의 [단위 테스트] 부분에 대해 정리해보았다. 코드에서 테스트는 매우 중요한 부분이다. 테스트 작성에서 준수해야 할 것은 매우 많이 있으나, 클린코드의 기준에서 테스트를 정리한 책의 내용을 정리하였다. 테스트 당 개념하나 테스트에서도 코드에 작성하는 규칙을 준수하는 것처럼 다른 사람이 보았을 때 이해하기 쉬운 코드를 작성해야 한다. 예를 들어 함수가 지나치게 길거나 비슷한 개념이여도 연속으로 테스트하는 긴 함수는 피해야 한다. 개념마다 테스트를 분리하는 것이 좋으며 독자적인 개념마다의 테스트 갯수로 쪼개야 마땅하다. 아래는 위와 같은 긴 코드의 예시인데 클린 코드 p.166을 참조하면 좋겠다. Public void testAddMonths(){ SerialDate d1 = SerialDate.cr.. 2024. 2. 2.
프록시 의미 프록시 서버(영어: proxy server 프록시 서버[*])는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다. 프록시 서버 중 일부는 프록시 서버에 요청된 내용들을 캐시를 이용하여 저장해 둔다. 이렇게 캐시를 해 두고 난 후에, 캐시 안에 있는 정보를 요구하는 요청에 대해서는 원격 서버에 접속하여 데이터를 가져올 필요가 없게 됨으로써 전송 시간을 절약할 수 있게 됨과 동시에 불필요하게 외부와의 연결을 하지 않아도 된다는 장점을 갖게 된다. 또한 외부와의 트래픽을 줄이게 됨으로써 네트워크 .. 2021. 11. 16.