전체 글

Git: https://github.com/junxtar 발전하고 싶은 초보개발자
애플리케이션 테스트의 기본 원칙 결함 집중 1. 파레토 법칙이 좌우한다.(어플리케이션의 20%에 해당하는 코드에서 전체 80%의 결함이 발견된다) 2. 애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재한다. 3. 결함은 발생한 모듈에서 계속 추가로 발생할 가능성이 높다. 살충제 패러독스 1. 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상의 결함을 발견할 수 없다. 2. 정기적으로 테스트를 리뷰하고 새로운 테스트 케이스를 추가해야 한다. 오류-부재의 궤변 1. 사용성이 낮으면 오류를 발견하고 제거해도 품질이 높다고 말할 수 없다. 2. 결함이 없는 프로그램이라도 사용자의 요구사항을 만족하지 못하면 좋은 프로그램이 될 수 없다. 브록스의 법칙 SW 개발 일정이 지연된다고 해서 새로운..
객체지향 5대 원칙이란? SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), ISP(인터페이스 분리 원칙), DIP(의존 역전 원칙), 을 말하며, 앞자를 따서 SOILD 원칙이라고 부른다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 소프트웨어를 만드는데 이 원칙들을 적용할 수 있다. 또한 이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다. 1. Single Responsiblity Principle (단일 책임 원칙) - "소프트웨어의 설계 부품(클래스, 함수 등)은 단 하나의 책임만(기능)을 가져야 한다." 설계를 잘한 프로그램은 기본적으로 새로운 요구사항들과 프로그램 변경에 영향을 받는 부분이 적다. 즉, 유지보수가 편이하다..
· Spring
스프링부트 프로젝트를 설정하다보면 application.properties 또는 application.yml 혹은 둘 다 만날때가 있다. 이 둘의 외부 속성을 설정하는 파일입니다. application.properties -Key - Value 형식을 사용하여 외부 구성의 속성을 설정 application.yml -YAML기반으로 외부 구성의 속성을 설정할 수 있다. -반복되는 접두사가 없어 가독성이 좋다. #결론 application.yml이 계층적으로 잘 표현할 수 있어 편리하다.
· Spring
대학 과정 속에서 자바를 처음 접하였고, 흥미가 생겨 더욱 깊이 있게 배우고 싶다는 생각이 들었다. 이제 막 졸업을 앞두고 있는데 아직 배워야 할 지식이 차고 넘친다고 생각을 하였고, 그 지식 중에서 가장 먼저 Spring을 배워보려고 한다. 보다 퀄리티 있는 Spring 강의를 찾고 있었는데 검색을 해보니 많은 사람들이 인프런에 김영한 강사님을 추천해주어서 나도 빠르게 수강신청하였다. 전반적인 Spring에 대한 설명을 마친 후 바로 Project를 생성하였다. 빌드 관리 도구로 강사님은 Maven과 Graddle이 있다고 설명을 해주셨는데 더욱 깊이 알고 싶다는 생각에 전반적인 내용을 정리하는 시간을 가져본다. 빌드 관리 도구 소스코드에서 어플리케이션 생성을 하면서 여러가지 여부 라이브러리를 사용하는..
1. 전 세계적으로 웹 서버의 TCP 포트 번호는 80번으로 지정되어 있다. 클라이언트에 해당하는 웹 브라우저와 웹 서버의 연결 설정과 해제 과정은 사용자가 URL 주소를 새로 입력할 때마다 반복된다. 2. 웹 서비스는 클라이언트의 요청에 따라 웹 서버에 저장된 웹 문서를 클라이언트에 전달하고, 이 문서의 내용을 웹 브라우저에 출력해준다. HTTP는 클라이언트의 요청과 서버의 응답 정보를 전송하는 프로토콜이다. 3. PHP는 리눅스 환경에서 주로 사용되며, 웹 서버 프로그램이 아파치와 데이터베이스 기능을 지원하는 MySQL과 연동해 동작한다. 이 세 가지를 통칭하여 APM이라 부른다. 4. HTML 태그 명령어 중에서 다음 줄로 넘어가는 기능은 에 의하여 구현되며, 위 첨자 기능은 에 의하여 구현된다. ..
1. 소켓에 이름을 부여하는 방법은 프로토콜 종류에 따라 다양하다. 프로그래밍 환경에서는 주로 두 개의 주소 체계가 사용된다. 즉, 호스트 내부에서 실행되는 프로세스 사이의 통신을 지원하는 AF_UNIX 와 서로 다른 호스트에서 실행되는 프로세스 사이의 통신을 지원하는 AF_INET가 있다. 2. 인터넷 주소 체계에서 사용되는 구체인 struct sockaddr_in 의 sin_family 필드에는 AF_INET이 지정되어야 한다. 또한 소켓의 주소 역할을 하는 호스트의 IP 주소와 포트 번호는 각각 sin_addr 필드와 sin_ port에 보관된다. 3. bind (sock, struct sockaddr &addr, sizeof(addr)); 4. 소켓의 유형 중에서 SOCK_STREAM은 연결형 서..
1. 세션 계층의 주요 기능인 동기 기능은 통신 양단에서 서로 동의하는 논리적인 공통의 처리시점, 즉 동기점을 지정하기 위해 사용한다. 동기점을 설정하는 이유는 메시지 전송 과정에서 발생할 수 있는 오류를 복구하기 위해서이다. 메시지 전송 과정을 의미하는 대화 단계에서 오류가 발생하면 이전에 설정한 동기점 까지는 복구할 수 있다. 2. 세션 계층에서는 두 응용 프로그램의 대화를 관리하기 위하여 토큰이라는 특수 메시지를 사용한다. 이를 보유했다는 것은 해당 토큰에 부여된 특정 권리를 배타적으로 소유한다는 의미이다. 3. 전송 과정에서 오류가 발생하면 특정 동기점으로 돌아가 복구하는 기능이 실행되는데 이와 같은 일련의 복구 과정을 재동기라 한다. 4. 세션 연결 구조와 관련하여 단일 세션을 지원하는 서버 환..
1. UDP 프로토콜의 헤더 구조에는 데이터의 순서 번호 기능이 제공되지 않으므로 데이터그램 분실 여부를 확인할 수 없다. 또한 데이터그램 도착 순서가 변경되는 오류를 해결하지 못하는 원인도 이 기능이 존재하지 않기 때문이다. 2. UDP 프로토콜은 슬라이딩 윈도우 프로토콜과 같은 흐름 제어 기능을 제공하지 않으므로 버퍼 오버플로에 의한 데이터 분실 오류가 발생할 수 있다. 3. 인터넷 환경에서 실시간 서비스를 제공하는 가장 현실적인 방법 중 하나는 UDP에 순서번호 기능을 추가하는 것이다. 이러한 프로토콜의 대표적인 예가 실시간 멀티미디어 데이터의 전송을 지원하는 RTP이다. 4. 실시간 데이터를 전송하는 환경에서는 지터 라는 변수가 중요한데, 이는 데이터그램의 도착 시간을 측정하였을 때 지연시간 분포..
Junxtar
Junxtar의 개발일지