
주석 어떤 프로그램이든 가장 기본적인 단위가 함수다. 이 장은 함수를 잘 만드는 법을 소개한다. 작게 만들어라 함수를 만드는 규칙은 '작게' 이다. 이 규칙은 근거를 대기가 곤란하다. 함수가 작을수록 더 좋다는 증거나 자료를 제시하기도 어렵지만,오랜 시행착오를 바탕으로 작은 함수가 좋다고 확신한다. 블록과 들여쓰기 if문 / else 문 / while 문 등에 들어가는 블록은 한 줄이어야 한다는 의미다. 그러면 바깥을 감싸는 함수가 작아질 뿐 아니라, 블록 안에서 호출하는 함수 이름을 적절히 짓는다면, 코드를 이해하기도 쉬워진다. 함수에서 들여쓰기 기준은 1단이나 2단을 넘어서면 안 된다. 그래야 함수는 읽고 이해하기 쉬워진다. 한 가지만 해라 함수는 한 가지를 해야 한다. 그 한가지를 잘 해야 한다. ..

1. Nginx YUM repository 추가 YUM Repository에 Nginx 패키지가 존재하지 않기 때문에 수동으로 추가해준다. sudo vi /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=https://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 name : 저장소의 이름 baseurl : 패키지 저장소의 url gpgcheck : 패키지의 GPG 서명여부(1-사용,0-미사용), '1'로 설정할 경우 반드시 gpgkey 항목을 설정해야한다 enabled : 저장소 설정여부 (1-사용,0-미사용) 2. Nginx 설치 sudo yum install -y nginx -y는 ..

네트워크 관리사 2급 필기 & 실기 후기 필기 준비기간 : 3일 실기 준비기간 : 2일 네트워크 관리사 2급 필기 필기 검정과목 네트워크일반 전자문제집 CBT 문제풀이&오답노트 반복 TCP/IP 전자문제집 CBT 문제풀이&오답노트 반복 NOS 전자문제집 CBT 문제풀이&오답노트 반복 네트워크 운용기기 전자문제집 CBT 문제풀이&오답노트 반복 필기시험은 다른 자격증 필기시험과 비슷하게 문제은행으로 출제됩니다. 실제로 필기시험의 경우 이전에 출제되었던 문제유형이 그대로 출제되는 경우가 많아 시간이 촉박하다면 최근 5년치 문제와 답을 암기하는 식으로 공부하면 되고, 시간이 여유롭다면 문제를 풀고 오답을 찾아 공부하는 방식으로 공부하는 것을 추천드립니다. 시험에서 자주 출제되고 강조하는 부분이 매년 중복되기 때..

소프트웨어에서 이름은 어디나 쓰인다. 우리는 변수에도 이름을 붙이고, 함수에도 이름을 붙이고, 인수와 클래스와 패키지에도 이름을 붙인다. 이렇듯 많이 사용하므로 이름을 잘 지으면 여러모로 편하다. 이 장에서는 이름을 잘 짓는 간단한 규칙 몇 가지 소개한다. 의도를 분명히 밝혀라 "의도가 분명하게 이름을 지으라"고 말하기는 쉽다. 여기서는 의도가 분명한 이름이 정말로 중요하다는 사실을 거듭 강조한다. 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 그러므로 이름을 주의깊게 살펴 더 나은 이름이 떠오르면 개선하기 바란다. 그럼 코드를 읽는 사람이 좀 더 행복해지리라. 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다. 다음 코드는 무엇을 할까? public Li..

여러분들이 이 책을 읽고 있다면 이유는 두 가지다.첫째,프로그래머라서.둘째,더 나은 프로그래머가 되려고.다행이다!우리 업계는 더 나은 프로그래머가 필요하니까. 나쁜 코드 프로그래머라면 누구나 당연히 나쁜 코드로 고생한 경험이 있다.그렇다면 묻겠다.어째서 왜 나쁜 코드를 짰는가?우리 모두는 자신이 짠 쓰레기 코드를 보며 나중에 손보겠다고 생각한 경험이 있다.우리 모두는 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 그래도 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한 경험이 있다.다시 돌아와 나중에 정리하겠다고 다짐했었다.물론 그때 그 시절 우리는 르블랑의 법칙을 몰랐다.나중은 결코 오지 않는다. 나쁜 코드로 치루는 대가 2-3년 넘게 프로그램을 짰다면 남들이 저질러놓은 쓰레기 ..

프로세스 프로세서에 의해 동작하고 있는 프로그램 프로세스가 동작 한다는 것은 프로세스의 특정 쓰레드가 실행 중 그 특정 쓰레드는 프로세스가 가진 데이터를 참조함 쓰레드 작업 단위를 지원하기 위한 자원 할당의 단위 프로세스 구조 Stack 정적 할당에 사용 호출된 함수, 지역변수 등이 저장되어 있는 임시 메모리 Heap 동적 할당에 사용 동적으로 생긴 데이터 new Object() Data 프로그램 시작과 종료시까지 사용 전역변수 static 변수, global 변수 Code 프로그램의 코드내용 활용에 사용 프로세스가 종료될 때까지, 계속 유지되는 영역 PCB(Process Control Block) 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영체제 커널의 자료구조이다 프로세스가 생성될 때 마..

자바란? 자바는 썬 마이크로시스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어이다. 자바의 가장 중요한 특징은 운영체제에 독립적이라는 것이다. 자바로 작성된 프로그램은 운영체제의 종류와 관계없이 실행이 가능하기 때문에, 운영체제에 따라 프로그램을 전혀 변경하지 않고도 실행이 가능하다. 또한 객체지향개념과 기존 다른 프로그래밍언어, 특히 C++의 장점을 채택하는 동시에 잘 사용되지 않는 부분은 과감히 제외시킴으로써 비교적 배우기 쉽고 이해하기 쉬운 간결한 표현이 가능하도록 했다. 자바의 특징 운영체제에 독립적이다 기존 언어는 한 운영체제에 맞게 개발된 프로그램을 다른 종류의 운영체제에 적용하기 위해서 많은 노력이 필요하였지만, 자바에서는 그런 노력을 하지 않아도 된다. JVM..

스프링 시큐리티 기본 API 및 Filter 이해 프로젝트 구성 및 의존성 추가 org.springframework.boot spring-boot-starter-security 스프링 시큐리티의 의존성 추가 시 일어나는 일들 서버가 기동되면 스프링 시큐리티의 초기화 작업 및 보안 설정이 이루어진다 별도의 설정이나 구현을 하지 않아도 기본적인 웹 보안 기능이 현재 시스템에 연동되어 작동함 모든 요청은 인증이 되어야 자원에 접근이 가능하다 인증 방식은 폼 로그인 방식과 httpBasic 로그인 방식을 제공한다 기본 로그인 페이지를 제공한다 기본 계정을 한개 제공한다 - username : user / password : 랜덤 문자열 문제점 계정 추가, 권한 추가, DB연동 등 기본적인 보안 기능 외에 시스템..

*************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port. 원인 스프링 애플리케이션을 실행하고 종료하다보면 IDE에서 정상적으로 프로세스를 종료하지 못하였거나 이전에 다른 프로세스가 이미 해당 포트를 선점하고 있어 발생하는 오류이다. 해결방법 1. 해당 포트를 검색하여 ..