일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 명명규칙
- udp
- Socket
- NamingRule
- SnakeCase
- DatagramSocket
- Java
- PascalCase
- KebabCase
- 스네이크케이스
- 케밥케이스
- UDP통신
- camelcase
- DatagramPacket
- 파스칼케이스
- tcp
- ServerSocket
- 카멜케이스
- Today
- Total
목록개발etc (7)
MATT's
읽기 쉬운 코드가 클린 코드(Clean Code)이다. 클린 코드를 한 마디로 정의하라고 하면, 위와 같이 정의할 수 있을 것 같다. 그만큼 클린 코드의 가장 중요한 요소 중 하나는 가독성이라고 할 수 있다. 즉, 모든 사람이 이해하기 쉽도록 작성된 코드를 말한다. 가독성이 왜 중요할까? 일반적으로 기존 코드를 변경하고자 할 때, 해석하는 시간과 수정하는 시간의 비율은 10:1 정도라고 한다. 즉, 코드를 변경하기 위해 걸리는 총 시간이 11시간이라고 한다면, 그 중 코드를 분석하는데 소요되는 시간이 10시간 정도라는 뜻이다. 해석이 어려운 코드를 수정하는데는 그만큼 분석에 소요되는 시간이 더 오래 걸리기 때문에 가독성이 중요한 것이다. 또한 대부분의 결함은 기존 코드를 수정하는 동안 발생된다고 하니 오..
rsync 란? 서로 다른 두 컴퓨터에 들어있는 정보를 동기화 시킬 때 사용하는 프로그램 Remote Sync의 약자 rsync는 컴퓨터 시스템 상에서 파일을 효율적으로 전송하고 동기화하기 위한 유틸리티 파일의 타임스탬프와 크기를 검사하여 동작 전송 시에 네트워크 대역폭을 최소화하는 delta encoding algorithm을 구현하여 rcp나 scp보다 훨씬 빠르고 효율적으로 site간의 데이터를 동기화한다. rsync는 client와 server 프로그램이 모두 포함되어 있으며 server로 구동 시 tcp의 873 포트를 사용한다. server 구동 시 SSH나 RSH 같은 Remote Shell protocol 기반에서 동작할 수도 있으므로 ssh 기반으로 rsync를 사용하면 방화벽을 오픈할 ..
lsyncd 란? lsyncd는 파일 시스템 이벤트 모니터링 시스템인 inotify를 통해 SRC 서버의 파일 시스템이 바뀌었을 때, rsync를 이용하여 동기화를 진행하는 데몬 프로그램 파일 시스템 이벤트를 모니터링하여 서버의 파일 시스템이 변경되었을 때만 rsync를 이용하여 동기화하기 때문에 주기적으로 변경사항을 체크하는 방식보다 네트워크적인 면에서 더 효율적 ** rsync 란? 사용법 lsyncd는 SRC 서버에 설치하며, rsync를 이용하여 파일 시스템을 동기화 하기 때문에 SRC서버와 DEST 서버 모두에 rsync 패키지가 설치되어 있어야 함 lsyncd는 3rd party repository인 epel repository로 부터 다운 받을 수 있기 때문에, epel-release가 설치..
예를 들어, 화면에서 버튼 클릭시 서버에 데이터를 요청하고, 해당 데이터를 가져와서 화면에 출력하는 로직이 한 개의 클래스에 작성되어 있다고 생각해보자. 만약 프로그램이 딱 그 정도 작업만 한다면 크게 문제되지는 않을 것이다. 하지만 버튼이 여러개 있고, 화면도 여러개, 데이터도 여러개...인데 한 개의 클래스에서 모든 로직을 관리하게 된다면 결국 코드가 뒤죽박죽 엉켜있고, 지저분해지고 뭐가 뭔지 알아볼 수도 없고 유지보수하기 굉장히 까다로울 것이다. 때문에 화면에 출력하는거(사용자 인터페이스) 따로 실제 작업을 처리하는거(비즈니스 로직) 따로 나누면, 유지보수할 때 보기도 쉽고, 찾기도 쉬울 것이다. 그래서 나온 것이 MVC, MVVM과 같은 디자인 패턴(프레임워크 패턴)이다. MVC (Model, V..

[플러그인 설치 방법] VSCode에서 플러그인을 설치하는 방법은 아래와 같다. VSCode를 열고 위에 표시해놓은 부분을 클릭하면 설치할 수 있는 플러그인 목록이 출력된다. 설치할 플러그인을 검색창을 통해 검색한 후에 Install 버튼을 클릭해서 설치하면 된다. [추천 플러그인] 1. Vetur - VSCode에서 Vue 개발을 위해 사용하는 플러그인 - vue파일에 대한 코드들의 자동 완성 등을 제공한다. TODO 실사용 캡쳐 2. Material Icon Theme - VSCode에서 사용되는 아이콘들을 변경해주는 플러그인 - 기본 아이콘들로는 무슨 파일인지 확인하기 어려울 수 있는데, Material Icon Theme에서는 파일 확장자 별로 아이콘을 각각 지정해주기 때문에 개발할 때, 보기 편..
* 파스칼 케이스 (PascalCase) - 여러 단어를 연결시, 각 단어의 첫글자를 대문자로 작성하는 기법 - ex) AppHeader * 카멜 케이스 (camelCase) - 여러 단어를 연결시, 두번째 단어부터 첫글자를 대문자로 작성하는 기법 - ex) appHeader * 스네이크 케이스 (snake_case) - 각 단어를 소문자로 작성하며, under bar( _ )로 연결하여 작성하는 기법 - ex) app_header * 케밥 케이스 (kebab-case) - 각 단어를 소문자로 작성하며, hypen( - )으로 연결하여 작성하는 기법 - ex) app-header

최근 JDK11과 mysql을 사용하여 개발하던 도중 알 수 없는 오류를 만났다. 에러 내용은 아래와 같다. 캡쳐에는 잘렸는데, 아래에는 이런 에러도 적혀있었다. Caused by: java.security.cert.CertPathValidatorException: Algorithm constraints check failed on signature algorithm: MD5withRSA 찾아보니 JDK11과 mysql-connector 8.0.15에서 발생하는 버그였다. 해결 방법으로는 'jdk11/conf/security/java.security' 파일을 수정하라는 내용도 있었고, JDBC URL 정보에 'useSSL=false'를 추가하라는 내용도 있었다. 중요한 정보가 담겨있는 DB 데이터이기 때..