본문 바로가기

IT개념/프로그래밍상식

(14)
클린코드 2장 의미 있는 이름 소프트웨어에서 변수, 메소드, 클래스, 파일 및 패키지 명까지 모든 곳에는 이름을 붙여야한다. 이름이 무슨 기능을 하나 대충 지을 수 있다 생각하지만 깔끔한 코드에는 명확하고 규칙적인 네이밍이 필수다. 누가 읽어도 이해할 수 있는 코드가 좋은코드이다. 난독화가 목적이 아닌 이상, 의도가 분명한, 누가 읽어도 무슨 역할을 하는지 이해할 수 있도록 작명하여야 한다. 오해할 수 있는 여지가 있는 네이밍은 피해야한다. 추가로 소문자 l과 대문자 O는 1과 0 그리고 대문자 I와 구분하기 어려우므로 이러한 문자들도 피하자. 이 또한 중요한데, 값을 하드코딩하는 것을 포함하여 값의 정보로 변수를 표기하면 검색 시 불편함이 있다. 그러므로 목적에 맞는 네이밍으로 검색을 쉽게 하자. 한 가지 예시로 이벤트나 익셉션을 ..
클린코드 1장 깨끗한 코드 좋은 코드는 어떤 코드인가 읽기쉬운코드, 한가지 기능만 하는 코드, 중복이 없는코드.... 가장 와닿은 의견은 짐작한 기능을 그대로 이루는 코드이다. 너무 당연하고 명백해 심오한 발언이라 여겨지지 않는다. 짐작하는 기능을 수행하는것이 당연하지 않던가? 하지만 짐작한 기능을 그대로 수행하는 모듈을 마지막으로 접한게 언제였던가? 코드의 기능을 살펴보려면 전체 시스템부터 논리를 찾으려 애썼던 기억에 고개를 끄덕이게 된다. 우리는 좋은 코드를 작성하는데에는 아키텍처나 프레임워크, 언어 등 고차원적인 요소가 품질을 결정한다고 생각하지만, 이 책에서는 단순한 들여쓰기 스타일로 가치를 만들어내고 사소한 것 하나에서 깨끗한 코드가 탄생한다고 알려주고 있다. 클린코드는 이를 통해 우리가 우아하고 직관적인 코드를 작성할 ..
OOP, AOP 리팩터링 작업 예시) 결제창 호출 메소드 컨트롤러, 서비스 역할이 혼동되어 유효성검증과, 각종 변수와 메소드들이 마구잡이로 선언되어있는 소스 역할분리하여 필요한 것만 남기고, 나머지는 다 서비스 레이어로 불필요한 메소드 제거, 검증로직은 모두 CustomException 통해 모듈화 필드명 안맞는것 고치기엔 리스크가 커서 스킵했다. try catch는 리턴 타입 구분으로 못없앴다. 이게 최선인거같은데 ex) before, after
WAS 최적화와 트러블슈팅 싸이웰시스템 웨비나 정리 노션 이미지 복사가 안되서 링크로 첨부 세션1 ) WAS 전반 내용 1. WAS(JAVA)를 사용하기 앞서 - JVM과 JDK 개념과 이해 - JDK 버전별 호환성 - JDK Option 2. GC - GC 동작방식 - GC 의 종류 - GC 트러블슈팅 - GC 모니터링 - APM 3. JAVA_OPTION - standard options - non standard / advanced option 4. 권장 Setting - 서버 세팅 - Thread Pool 세팅 - Data Source 권장설정 - GC 권장 설정 https://pastoral-orangutan-b4e.notion.site/WAS-1-2744a09ec0664d2eaf906966c24a9a6e WAS사용자교육..
[DEVIEW2023] 런타임 데드 코드 분석 도구 Scavenger *DEVIEW2023에서 열린 네이버 플랫폼 랩스의 김태연, 권오준 개발자님의 강연을 그대로 개인 학습을 위해 정리한 포스트입니다. https://youtu.be/qE7HY7Y-5vs *Scavenger는 DEVIEW2023에서 네이버가 공개한 오픈소스 프로젝트입니다. 1. Dead Code란? 실행되지 않는 코드를 뜻합니다. (Unreachable) 아래는 예시 소스입니다. final int age = 25; if (age>20){ System.out.println("Okay"); } else { System.out.println("Nope"); } 위 조건문에서 변수 age는 else로 분기될 수 없으므로 영영 사용되지 않는 else는 Dead Code입니다. 간단한 예시를 들었지만 소스 상에서 사용..
인텔리제이 자주쓰는 단축키 보호되어 있는 글입니다.
[TCP]데이터 보증과 재전송제어 TCP/IP 프로토콜은 연결이 생성된 이후 데이터 송수신이 시작된다. 이에 데이터가 확실히 전달되도록 보증하는 기능에 대해 알아보자. 데이터 손실을 방지하는 구조 이는 확인 응답과 재전송으로 구현된다. 수신 측에 TCP 세그먼트가 도착하면 수신 측은 송신 측에게 도착을 알린다. 이 때 반환하는 것을 ACK라고 하며, TCP 헤더에 ACK 관련 정보를 넣은 TCP 세그먼트를 반환한다. 즉, 하나의 TCP 세그먼트로 응답할 때 데이터의 ACK를 동시에 반환하여 왕복 횟수를 줄인다. 송신 측은 ACK가 돌아오는 것을 보고 전송한 세그먼트가 무사히 도착했다는 것을 알 수 있다. ACK가 오지 않으면 무슨 문제가 생긴것이므로 언제든지 재전송 할 수 있도록 전송이 끝난 TCP 세그먼트도 ACK를 받기 전까지는 소켓..
캐시에 대하여 캐시 캐시란? 캐시는 cash(현금)이 아니라 cache라고 쓴다. 캐시에는 '숨기는 장소'라는 의미가 있다. 컴퓨터 세계에서는 사용 빈도가 높은 데이터를 고속으로 엑세스할 수 있는 위치에 두는 것을 의미한다. CPU의 1차, 2차캐시, 저장소 캐시, OS 페이지 캐시, 데이터베이스 버퍼 캐시 등 광범위하게 일컫는다. 캐시는 임시 저장소를 의미한다. 일부 데이터를 데이터 출력 위치와 가까운 지점에 일시적으로 저장한다. 데이터 재사용을 전제로 한다. 어디에 사용되는가 브라우저 캐시는 웹 브라우저가 접속한 페이지를 캐시하는 것이다. 이를 통해 웹 서버 접속을 줄이고 브라우저 표시를 고속화 할 수 있다. 웹 서버 부하를 줄이는 다른 방법으로는 웹 서버와 클라이언트 사이에 캐시서버를 배치하는 방법..