본문 바로가기

분류 전체보기170

[cs 정리]네트워크 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 1. OSI 7계층과 각 층에 대한 설명 OSI 7계층은 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것입니다. 응용 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터링크 계층, 물리 계층으로 이루어져 있습니다. osi 7계층은 이론적인 모델이고, 실제로 데이터를 전송하는 데 사용되는 모델은 tcp/ip 모델이라고 한다. osi는 통신 전반에 대한 표준이고, tcp/ip는 데이터 전송기술에 특화되어 있다. 각각이 헤더를 붙여 캡슐화했기 때문에 문제가 발생했을때 빠르게 대응할 수 있다. 7계층-응용 계층(Application Layer) HTTP, DNS등을 이용해 사용자가.. 2022. 9. 16.
클린코드 10장 10장 클래스 클래스 체계 변수가 먼저 나오고, 그다음에 함수가 나온다. 변수 순서: static->public->private->비공개 인스턴스 함수 순서: 공개함수->자신을 호출하는 비공개 함수(추상화 단계가 순차적으로 내려감) 캡슐화 변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫다. 클래스는 작아야 한다. 큰 클래스 하나보다는 작은 클래스 여럿으로 이뤄진 시스템이 더 좋다. 클래스 이름은 해당 클래스 책임을 기술해야 한다. 간결한 이름이 떠오르지 않는다면 클래스 크기가 너무 커서 그렇다. 단일 책임 원칙 단일 책임 원칙은 클래스나 모듈을 변경할 이유가 하나뿐이어야 한다는 원칙이다. (모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함) 책임=변경할 이유 를 파악하려.. 2022. 9. 16.
클린코드 9장 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 9장 단위 테스트 TDD 법칙 3가지 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 위 3가지 법칙을 따르면 개발과 테스트를 빠르게 수행할 수 있다. 단 이렇게하면 테스트 케이스가 너무 많이 나와서 관리가 힘들 수 있다. 깨끗한 테스트 코드 유지하기 지저분한 테스트 코드를 내놓느니 차라리 안하는게 낫다. 테스트 코드가 복잡할수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸린다. 테스트 코드는 실제 코드 못지 않게 중요하다... 2022. 9. 16.
문자열로 된 수식 계산하기 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. eval 함수를 쓰면 된다. print(eval('1+1'))) #2가 출력됨 만약 계산할 수 없는 수식의 문자열이라면 에러가 발생한다. 2022. 9. 16.
클린코드 8장 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 8장 경계 때로는 사내 다른 팀이 제공하는 컴포넌트를 사용한다. 어떤 식으로든 이 외부 코드를 우리 코드에 깔끔하게 통합해야만 한다. 외부 코드 사용하기 Map 같은 경계 인터페이스를 이용할 때는 클래스나 클래스 계열 밖으로 노출하지 않도록 주의한다. 또한 map 인스턴스를 공개 api의 인수로 넘기거나 반환값으로 사용하지 말자. 그러면 map 인터페이스가 변하더라도 나머지 프로그램에는 영향을 미치지 않는다. 경계 살피고 익히기 때로는 우리 버그인지 라이브러리 버그인지 찾아내느라 골치를 앓는다. ...곧바로 우리쪽 코드를 작성해 외부 코드를 호출하는 대신 먼저 간단한 테스트 케이스를 작성해 외부 코드를.. 2022. 9. 16.
클린코드 7장 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 7장 오류 처리 오류 처리는 중요하다. 하지만 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵다. 오류 코드보다 예외를 사용하라 if 문으로 오류를 하나하나 잡기보다는, try-catch로 묶어서 처리하자 Try-Catch-Finally 문부터 작성하라 예외에서 프로그램 안에다 범위를 정의한다는 사실은 매우 흥미롭다. 어떤 면에서 try 블록은 트랜잭션과 비슷하다. 미확인 예외를 사용하라 아주 중요한 라이브러리를 작성한다면 모든예외를 하나하나 잡아야 하지만...일반적인 애플리케이션은 의존성이라는 비용이 이익보다 크다. 확인된 예외: 컴파일 과정에서 에러가 나므로 .. 2022. 9. 15.
반응형