전체 글

· 배운것들
문제 발생파이어폭스에서 localhost:10080으로 접속하려 하니 거부당함 (크롬에서는 정상적으로 접속 가능)   해결 방안여러 삽질의 결과 해결방안을 찾아냄 일단 firefox 주소창에 'about:config' 입력하고 들어감   그럼 주의해서 진행하라는 안내문을 볼 수 있고, '위험을 감수하고 계속 진행' 버튼을 클릭    그럼 설정을 검색할 수 있는데 여기에 'network.security.ports.banned.override'를 검색한다.     당연히 설정된게 없을 것이다. 여기서 문자열을 선택하고 '+'버튼을 누르면   이렇게 포트번호를 입력할 수 있게 되고 자신이 접속하려는 포트 번호를 입력하면 된다. 나는 10080포트로 접속할꺼니 10080을 입력할 것이다. 입력을 한 후 체크 버..
5장. 구현 설계 목차 5.1 설계의 어려움 5.2 핵심 설계 개념 5.3 설계 빌딩 블록: 발견적 학습 5.4 설계 실천법 5.5 잘 알려진 방법론에 대한 의견 5.1 설계의 어려움 "소프트웨어 설계"는 컴퓨터 소프트웨어에 대한 명세를 동작 가능한 소프트웨어로 변환하기 위한 계획에 대한 구상이나 창작, 도구를 뜻한다. 설계는 요구사항을 코드 작성과 디버깅에 연결하는 작업이다. 훌륭한 상위 설계는 여러 개의 하위 수준의 설계를 무리 없이 담을 수 있는 구조를 제공한다. 설계는 불명확한 문제다 설계는 확실하게 정답이 정해져 있지 않다. 한 번 설계하고, 문제가 발견되면 다시 설계하는 과정을 반복해야 한다. 그동안 설계 없이 프로그래밍을 해왔지만 이번 챕터를 읽은 이후 설계를 하고 코딩을 시작해야 겠다. 설..
4장. 구현시 결정해야 할 핵심 사항 목차 4.1 프로그래밍 언어 선택 4.2 프로그래밍 규약 4.3 기술 흐름 파악 4.4 구현 실천법 선택 이 장에서는 구현과 관련된 구체적인 사항을 결정하는 방법에 대해 이야기한다. 4.1 프로그래밍 언어 선택 개발자는 프로그래밍 언어에 영향을 받는다. 프로그래밍 언어의 잘못된 예는 포트란에 익숙한 개발자가 C++ 언어를 사용해 개발을 하게 됐을 때, C++의 객체지향 기능은 전혀 사용하지 않고 포트란의 기능들(GOTO 문이나 전역 변수)을 사용해 프로그래밍 하는 것이다. 이는 C++을 가장한 포트란 코드를 작성하는 것과 같다. 나 또한 이와 같은 경험을 한 적이 있다. C 언어를 배우고 C++ 언어를 사용하게 되었을 때 작성한 코드들을 보면 C++언어를 사용해 절차..
· 배운것들
필요성 리눅스 기반으로 프로젝트를 진행하므로 기본적인 리눅스 사용법을 익혀야 함 리눅스 명령어 pwd Print Working Directory 현재 작업중인 directory 위치 출력 $ pwd /root cd Change Directory 절대 경로 또는 상대 경로로 이동 // 절대 경로 이동 $ cd /root/temp $ pwd /root/temp //상위 directory로 이동 $ cd .. $ pwd /root // 상대경로 이동 $ cd temp $pwd /root/temp ls List 현재 directory 내의 목록 리스트 출력 // 현재 directory 내의 볼 수 있는 목록만 출력 $ ls temp github sys_temp // 현재 directory 내의 목록의 상세정보를..
· 배운것들
Putty로 ssh 접속을 할 때마다 아이디와 비밀번호를 입력해야하는 번거로움이 있음 이 번거로움을 원격 접속을 할 환경(여기서는 Linux)에서 RSA키를 생성하고 이를 접속을 시도하는 PC(여기서는 Window)의 putty에 등록하여 사용 기존에 putty를 사용해 ssh로 붙은 사람들에게 도움이 될 정보이고, 처음 putty를 사용하는 사람들의 경우 일단 putty로 ssh 접속을 성공하고 다시 보는 것을 추천한다. Step 1. 준비물 준비물은 puttygen, putty, ssh로 붙으려는 리눅스, putty ssh 접속 성공 Step 2. RSA 키 생성 $ ssg-keygen -t rsa 위의 명령어를 리눅스에서 실행시켜 RSA 키를 생성한다. 중간에 passpgrase와 file의 경로를..
· 배운것들
Git git의 필요성 동시에 같은 파일을 여러 사람이 변경할 때, 어떤 파일이 최신 버전인지, 어떤 부분이 변경되었는지를 쉽게 확인할 수 있도록 도와주는 버전 관리 시스템 git을 사용해 소스 코드가 변경된 이력을 확인하고, 특정 시점에 저장된 버전과 비교하거나, 해당 시점으로 돌아갈 수 있음 기본 명령어 git clone 원격 저장소에 있는 내용을 로컬에 저장 git clone 형태로 사용 branch git branch : 모든 branch와 현재 branch가 무엇인지 알 수 있음 git branch -r : 원격 저장소의 branch 목록을 알 수 있음 git branch : 이름을 가진 새로운 branch 생성 git checkout : checkout 뒤의 이름을 가진 branch로 이동 g..
3장 준비는 철저하게: 선행조건 3.1 선행 조건의 중요성 품질 좋은 소프트웨어를 개발하기 위한 실천법은 프로젝트의 시작과 중간, 끝 단계에서 품질을 중요시하는 것이다. 프로젝트의 마무리 단계에서 품질을 강조하는 경우에는 시스템 테스트에 중점을 둔다. 프로젝트 중간 단계에서 품질을 강조하는 경우에는 구현 방법에 역점을 둔다. 프로젝트의 시작 단계에서 품질을 강조하는 경우에는 고급 제품을 계획하고 요구사항을 수집하고 설계한다. 구현 전에 선행 조건을 수행하기 위한 필수적인 논의 논리적 설득 비유적 설득 데이터에 근거한 설득 프로젝트의 시작 단계에서 발생한 오류를 나중에 고치려하면 많은 비용이 소모된다. 3.2 작업 중인 소프트웨어 종류 결정 순차적 접근 방법을 선호하는 경우 요구사항이 상당히 안정적일 때 ..
2장 소프트웨어 개발의 이해를 돕기 위한 비유 소프트웨어 개발을 비유하는 여러가지 말들이 있는데 그 중 이 책에서 가장 선호하는 단어는 건설이다. 집짓기와 소프트웨어 구축 작업을 집을 짓는 것에 비유해 앞으로 설명할 예정이다.
1. 소프트웨어 구현으로의 초대 소프트웨어 구현이랑 무엇인가? 구현활동에 속하는 작업 1. 성공적인 구현 활동을 위한 기초 작업 검증 2. 코드에 대한 테스트 방법 결정 3. 클레스 및 루틴 설계와 작성 4. 변수와 이름 상수 생성 및 이름 부여 5. 제어 구조 선택과 명령문 블록 구조화 6. 제어 구조 선택과 명령문 블록 구조화 7. 코드에 대한 단위 테스트, 통합 테스트, 디버깅 8. 저수준 설계와 코드를 다른 팀원과 교차 검토 9. 조심스럽게 코드의 포맷을 맞추고 주석을 달아 코드를 정리 10. 개별적으로 작성한 소프트웨어 컴포넌트의 통합 11. 코드가 더 빨리 실행되고 더 적은 자원을 사용하도록 최적화 소프트웨어 구현이 중요한 이유는 무엇인가? 1. 구현은 소프트웨어 개발에서 큰 비중을 차지한다...
개발자로 1월부터 일하게 되면서 개발차 필독도서를 찾아보던 중 전 분야에 걸쳐 인사이트를 주는 책이라는 평을 보고 구입하게 됐다 35장으로 구성되어 있어서, 한 주에 5장씩 7주면 완독할 수 있을 것이라 예상된다. 처음 책을 본 느낌은 굉장히 두껍고 다 볼 수 있을까? 라는 생각이 가장 많이 들었는데 한번 도전해보고 후기도 남길 예정이다. 서문 다른 공학 분야보다도 소프트웨어 공학은 특히 최고의 실천법과 평균 수준의 실천법 간의 차이가 꽤 크다. 그래서 좋은 기법을 널리 알리는 도구가 중요하다. -프레드 브룩스(Fred Brooks) 이 책의 추천 독자는 숙련된 개발자, 책임 개발자, 독학으로 배운 개발자, 학생이다. 나는 학생이지만 지식적으로 아는 것도 많이 부족하다. 여기선 지식은 갖췄으나 실무적인 ..
Chamy619
Chamy's Blog