작게 만들어라. 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다.
PS에서 Solution 함수를 작성할 때 우리는 항상 유혹에 부딪힙니다.
이 코드정도는 그냥 따로 빼지 않아도 되지 않을까?
생각해 보면 제가 PS에서 함수를 쪼개는 경우는 isIn() isTrue()와 같은 조건문을 빼거나 복잡한 시뮬레이션 문제를 쪼갤때 정도였습니다. 간단한 문제라면 함수의 분리가 없어도 되겠지만 구현해야되는 코드의 수준이 복잡해질수록 함수를 쪼개는 일이 중요한걸 느끼게 됩니다.
리눅스 커널을 기반으로 동작하며 JAVA, Kotlin언어로 개발된 모바일 기기에 주로 사용되는 오픈소스 플랫폼 운영체제
12. SQL
13. SOAP
SOAP (Simple Object Access Protocol)
Http등의 프로토콜을 이용해 XML 기반의 메세지를 교환하는 프로토콜.
구성하는 주요 3요소 : Envelop - Header - Body
REST API로 대체 가능, 표준기술 기반이나 XML을 사용해 상대적으로 무거움.
14. SQL Injection
웹 페이지의 입력값으로 SQL명령어를 입력해 서버의 오동작을 유도하는 해킹방법.
로그인을 하거나 서버의 DB정보를 알아내거나 개인 정보를 추출함
대응법 : 입력값 검증, Prepared Statement(DBMS 드라이버에서 SQL문장을 미리 준비), 방화벽, 에러 출력 방지 등
15. 인터페이스
- 인터페이스 설계의 기본 원칙
직관성: 누구나 쉽게 이해하고 사용할 수 있어야 한다. 유효성: 사용자의 목적을 정확하게 달성하여야 한다. 학습성: 누구나 쉽게 배우고 익힐 수 있어야 한다. 유연성: 사용자의 요구사항을 최대한 수용하며, 오류를 최소화하여야 한다.
와이어프레임(Wireframe), 목업(Mockup), 스토리보드, 프로토타입(Prototype), 유스케이스(Usecase) 등으로 설계
16. 리눅스 chmod
리눅스 운영체제에서 파일에 대한 권한을 변경하는 chmod 명령어
$ chmod [권한] [파일]
- 각 권한은 읽기4, 쓰기2, 실행1 로 부여됨.
Ex) 읽기와 쓰기 권한이 있으면 4+2 = 6
- 순서대로 소유자 / 그룹 / 다른 사용자 를 의미함.
Ex) 소유자에게 읽기, 그룹에게 쓰기, 다른 사용자에게 실행 권한을 부여하려면 chmod 421
권한 확인은 ls 명령어로, 소유 그룹 변경은 chgrp 명령어로
17. Linked Open Data
전세계 오픈된 정보를 하나로 묶는 방식 Linked data와 Open data의 합성어 URI(Uniform Resource Identifier)를 사용 RESTful 방식으로 볼 수 있으며, 링크 기능이 강조된 시멘틱 웹에 속하는 기술
18. 데이터베이스 설계
DB 설계 과정
요구사항 분석, 정의 -> 개념 설계 -> 논리 설계 -> 물리 설계 -> 데이터베이스 구현
19. JAVA
JAVA 상속(extends), super 문제
20. 형상관리
소프트웨어 개발 과정에서 산출물 등의 변경에 대비하기 위해 반드시 필요하다. 소프트웨어 리사이클 기간 동안 개발되는 제품의 무결성을 유지하고 소프트웨어의 식별, 편성 및 수정을 통제하는 프로세스를 제공한다. 실수를 최소화하고 생산성의 최대화가 궁극적인 목적이다. 관련 도구로는 CVS, SVN, Clear Case 등이 있다.