목록Development/기타 (41)
컴공생의 다이어리
[Linux] tree 명령어 리눅스에서 디렉토리 및 파일을 구조적으로 확인해보고 싶다면 tree 명령어를 활용하면 된다. 기본적으로 설치되어 있지 않기 때문에 아래 명령어를 통해 tree를 설치한다. sudo apt-get install tree 옵션을 사용하지 않고 순수하게 tree 명령어를 입력하면 현재 위치에 대한 폴더 및 파일 구조를 확인할 수 있고 마지막에 폴더/파일의 수가 출력된다. # 명령어 tree # 결과 . ├── app.js ├── bin │ └── www └── config ├── db │ ├── mysql.js │ └── test.js └── env.js 3 directories, 5 files 디렉토리만 확인하고 싶다면 -d 옵션을 사용해주면 된다. # 폴더만 확인 tree -..

MobaXterm(모바엑스텀) 설치 MobaXterm은 SSH, RDP, SFTP 등 다양한 네트워크 클라이언트와 터미널을 제공하는 툴이다. 다른 네트워크 클라이언트 프로그램에 비해 훨씬 강렬하고 편리한 세션 연결을 지원한다. 개인적으로 Putty를 사용하는 것보다 훨씬 더 편리하기 때문에 MobaXterm을 사용하는 것을 추천한다. 설치를 위해 아래 사이트에 들어가 MobaXterm Home Edition을 설치한다. MobaXterm free Xserver and tabbed SSH client for Windows The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more! mobaxt..
소프트웨어에서 Validation & Verification Validation 올바른 제품을 만들고 있는가? Are we building the right product? 사용자 요구사항을 만족시키는지 확인 사용자의 의도에 따른 구현 : 최종 목적 중시 동적 테스트 : 시스템 테스트 사용자 인수 테스트 Verification 제품을 올바르게 만들고 있는가? Are we building the product right? 소프트웨어의 올바른 구현을 보장 요구사항 명세서에 따른 개발 : 개발 과정 중시 정적 분석 : 리뷰, 인스펙션, 워크스루 동적 테스트 : 단위, 통합 테스트, 시스템 테스트 Question(문제)! Q. 명세서에 없는 기능이 포함된 것을 찾아내는 것은? A. Verification Q. ..
Clean Naming 원칙 모든 이름은 반드시 그 의미가 명확해야 한다. Function, Class 역할이 명확하면 Naming도 명확해짐 Clean Function, Class의 제 1원칙은 명확히 한 가지 역할을 하는 것 역할이 많으면 이름도 명확하지 않게 됨 ex) - createAndSaveUserInfo(), validateDataAndSendEmailAndSMS() : 역할이 너무 많음 - User : 괜찮을수도 있지만 도메인에 따라 일반 사용자인지 관리자인지 혹은 모두를 포함하는지 다소 애매할 수 있음 - GeneralUtil : 어떤 역할을 하는 Util인지 다소 추상적일 수 있음 명확한 이름을 짓기 어렵다면 Function 혹은 Class가 너무 많은 역할을 하고 있는게 아닌지 고민해..

Clean Naming이 왜 중요할까? 우리는 개발의 약 75%시간을 코드를 읽고 이해하는데 사용한다. 변수, 상수, 함수, 클래스, 파일 등 SW의 주요 요소는 이름을 갖고 있다. 좋은 이름은 내부를 들여다보지 않아도 동작과 목적을 이름을 통해 쉽게 이해할 수 있다. 즉, 좋은 이름을 사용하면 코드를 읽는 사람의 인지적 부하를 최소화 할 수 있다. 아래는 Quora의 Ubuntu Forum에서 프로그래머의 가장 어려운 Task를 주제로 한 설문 조사이다. 결과를 보면 알겠지만 압도적으로 Naming 관련해서 49% 어렵다는 의견이 있었다. 개발의 대부분은 기존 코드를 이해하고 수정하는 행위이다. 수십, 수백만 라인의 코드를 일고 이해하고 수정하는 결코 쉬운 일이 아니다. Clean Naming에 대한 ..

인바운드(inbound)와 아웃바운드(outbound) 인바운드와 아웃바운드는 트래픽에 네트워크 간에 이동하는 방향을 말한다. 인바운드 - 인바운드 트래픽은 네트워크에 들어오는 정보 - 메시지가 클라이언트에서 서버로 향하는 것 ex) 첨부파일을 서버에 저장할 때(업로드) 아웃바운드 - 아웃바운드 트래픽은 네트워크에서 나가는 정보 - 클라이언트의 요청을 처리하고 메시지가 서버에서 클라이언트로 다시 향하는 것 ex) 첨부파일을 다운로드 할 때 https://plein-de-verite.tistory.com/34 inbound / outbound (인바운드 / 아웃바운드) inbound / outbound (인바운드 / 아웃바운드) 인바운드 또는 아웃바운드는 트래픽이 네트워트 간에 이동하는 방향을 말한다. i..

주피터 노트북에서 자바(Java) 사용하기 주피터 노트북은 보통 파이썬과 관련해서 사용된다. 하지만 조금의 설정을 통해 자바 또한 주피터 노트북에서 실행시킬 수 있다. (주피터 노트북이 이미 설치되어 있다는 가정하에 글을 작성했다.) 우선 Java JDK를 설치해줘야 하는데, jdk 버전이 9버전 이상이 필요하다. Java 설치 관련해서는 아래 게시물에서 jdk 버전만 다른 것을 설치한 뒤, 환경설정하는 부분만 잘 따라가면 될 것 같다. [자바, Java] OpenJDK 1.8 설치 Java OpenJDK 1.8 설치 Oracle Java 유료화 정책이 시행되면서 OpenJDK를 많이 사용하는 추세라고 한다. 오늘은 OpenJDK 1.8버전을 설치하는 과정에 대해 정리하고자 한다. 우선 아래 Github..

Clean Code(클린 코드)에 대한 서로 다른 시각 클린 코드에 대해서 개개인 혹은 조직별로 서로 다른 시각을 가지고 있다. 아래는 클린 코드에 대한 서로 다른 시각의 일부 예이다. Clean Code란 무엇인가? 클린 코드란 이해하기 쉽고, 변경하기 쉬운 코드이다. 이는 Robert C. Martin이 본인의 저서 에서 정의를 내린 것이다. 사실 클린 코드의 표준이나 엄격한 정의는 존재하지 않는다. 하지만 클린 코드에 대한 공통적인 의견은 아래와 같다. 사람이 읽고 이해하기 쉽다 명확한 한가지 역할을 하며, 이 역할을 의미있게 표현 중복이 없다 테스트 케이스가 존재 중요하지만 Clean Code의 범위에 속하지 않는 것 자료구조/알고리즘 SW의 성능 개선 신뢰성, 안정성을 위한 개발 기법 SW 아키..

Web server failed to start. Port 8080 was already in use 에러 발생 스프링 부트 프로젝트를 하다가 가끔 'Web server failed to start. Port 8080 was already in use'라는 에러가 발생할 때가 있다. 여기서 포트번호는 각자 프로젝트 설정에 따라 다를 수 있다. 이 에러가 발생하는 경우는 서버를 구동하는데 필요한 포트가 이미 사용중이어서 그렇다. 방금까지 잘 돌아갔는데 이렇게 나오는게 맞나?라고 생각될 수 있지만 우리도 모르게 서버가 정상적으로 종료되지 않아서 에러가 발생할 수도 있다. 아무튼 해결법은 프로세스를 강제로 종료해야 하는데 운영체제 별로 아래와 같이 명령어를 cmd혹은 terminal에서 입력해주면 된다. Wi..
스프링 프로젝트를 진행하다보면 빌드 툴을 Maven과 Gradle 중 선택해서 사용할 수 있다. 이때, Maven과 Gradle이 무엇이고 어떤 차이점을 가졌는지 정리해보고자 한다. Maven Maven은 프로젝트관리 도구이다. Project object model (POM)개념의 기반으로 만들어져있으며 빌드 중인 프로젝트, 빌드 순서, 다양한 외부 라이브러리의 종속성 관계들을 pom.xml 파일에 명시한다. 외부저장소에서 필요한 라이브러리와 플러그인들을 다운로드/업데이트 한 다음, 로컬시스템의 캐시에 모두 저장한다. 아파치 메이븐은 자바용 프로젝트 관리 도구 아파치 Ant의 대안으로 만들어짐 아파치 라이센스로 배포되는 오픈 소스 소프트웨어 // maven 예시 org.projectlombok lombo..