목록Total (117)
솜은 코튼
[1차] 캐시 [문제 설명] 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다. 어피치에게 시달리는 제이지를 도와, DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 프로그램을 작성하시오. ..
[오류 사항] unresolved class 'FileProvider' 라는 클래스를 찾지 못하는 오류 현상 [오류 원인] 'android.useAndroidX=true' Android 플러그인에서 지원하는 라이브러리 대신 AndroidX 라이브러리를 사용하다는 옵션 값을 준 경우 [해결 방법] 'android.support.v4.content.FileProvider'에서 'androidx.core.content.FileProvider'로 교체
[오류 사항] ScrollView 사용 시 안의 내용이 잘리는 현상 [오류 원인] ScrollView 안 Layout에 'android:layout_gravity' 속성이 적용되어 있기 때문에 해당 오류 발생 [해결 방법] 'android:layout_gravity' 속성 제거 [오류 소스] [수정 소스] Layout으로 한 번 더 감싸서 gravity 속성으로 center 값 적용
01. 소프트웨어 패키징 : 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일 생성 / 사용자 중심 / 모듈화하여 패키징 고려사항 : 최소 환경 정의 / 패키징의 변경 및 개선에 대한 관리 고려 패키징 작업 순서 : 짧은 개발 주기 애자일 기법인 경우 2~4주 내에서 지정 - 온라인 배포 : 고객이 직접 다운 / 오프라인 배포 : CD-ROM이나 DVD, USV * 소프트웨어 패키징 작업 순서 : 기능 식별->모듈화->빌드 진행->사용자 환경 분석->패키징 및 적용 시험->패키징 변경 개선->배포 02. 릴리즈 노트 : 개발 과정에서 정리된 릴리즈 정보를 최종 사용자인 고객과 공유하기 위한 문서 / 버전 관리, 릴리즈 정보 관리 작성 순서 : 모듈 식별->릴리즈 정보 확인->릴리즈 노트 개요 작성->..
01. 운영체제 : 효율적 자원 관리 / 편리한 사용을 위한 환경 제공 목적 : 처리 능력 향상 / 반환 시간 단축 / 사용 가능도 향상 / 신뢰도 향상 성능 평가 기준 : 처리 능력 / 반환 시간 / 사용 가능도 / 신뢰도 기능 : 자원 관리 / 자원의 스케줄링 기능 제공 / 인터페이스 제공 / 하드웨어와 네트워크 관리 제어 / 데이터 관리 / 데이터 및 자원 공유 기능 제공 / 오류 검사 및 복구 / 자원 보호 기능 제공 / 보조 기능 제공 / 가상 계산기 기능 제공 자원 관리 : 프로세스 관리 / 기억 장치 관리(프로세스에게 메모리 할당 및 회수) / 주변 장치 관리(입·출력장치 스케줄링 및 전반적인 관리) / 파일 관리 종류 : Windows / UNIX / LINUX / Mac OS / MS-D..
01. 소프트웨어 개발의 비용 산정 기법 하향식 비용 산정 기법 : 과거의 유사한 경험을 바탕으로 비용 산정 (정적 테스트 : 프로그램 실행 X, 명세서나 소스코드 대상 분석 / 동적 테스트 : 프로그램 실행 O, 모든 단계) 상향식 비용 산정 기법 : 세부적인 작업 단위별로 비용 산정 후 집계 (LOC기법 / 개발 단계별 인월수 : LOC기법 보완) 02. 서비스 거부 공격 : 표적이 되는 서버의 정상적인 기능 방해 서비스 거부 공격의 유형 - Ping of Death(죽음의 핑) : 패킷의 크기를 허용 범위 이상으로 전송하여 네트워크 마비시킴 - Smurfing(스머핑) : 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄 - SYN Flooding : 3-way-handshake 과정 의도적으로 중..
객체지향 프로그래밍(OOP)이란? : 컴퓨터 프로그래밍 패러다임 중 하나, 자료구조와 이를 중심으로 한 모듈들을 먼저 설계한 다음 이들의 실행 순서와 흐름을 짜는 방식 절차지향과의 차이는? 이름만으로 알 수 있듯 절차대로 진행되는 실행방식이다. 그럼 객체지향은 절차대로 실행되지 않나? 정답은 NO! 위에서 정의했듯이 객체지향 또한 절차대로 진행된다. 다만, 위의 그림에서 보면 알 수 있듯이 절차지향은 프로그램 순서와 흐름이 중점이 되고, 객체지향은 객체가 중점이 된다. 즉, 절차지향 프로그래밍은 프로그램의 순서와 흐름을 먼저 세우고 필요한 자료구조와 함수들을 설계하는 방식이라면, 객체지향 프로그래밍은 자료구조와 이를 중심으로 한 모듈들을 먼저 설계한 다음에 이들의 실행 순서와 흐름을 짜는 방식인 것이다...
실패율 [문제 설명] 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. - 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 sta..
01. 애플리케이션 테스트 : 애플리케이션에 결함을 찾아내는 일련의 행위 또는 절차 (요구사항 만족시키는지 확인하고 정확히 수행하는지 검증) # 필요성 : 예방 / 신뢰도 향상 / 새로운 오류 유입 예방 / 최소한의 시간과 노력으로 많은 결함 발견 # 기본 원리 : 완벽한 테스트 불가능 / 결합 집중(파레토 법칙) / 살충제 패러독스 / 테스팅은 상황 의존 / 오류-부재의 궤변 / 테스트와 위험은 반비례 / 테스트의 점진적 확대 / 테스트의 별도팀 수행 - 완벽한 테스트 불가능 : SW의 잠재적 결함은 줄일 수 있지만 없다고 증명할 수는 없음. - 결합 집중 : 개발자 특성이나 애플리케이션 기능적 특징 때문에 특정 모듈에 집중, 파레토 법칙 적용 (파레토 법칙 : 애플리케이션의 20%에 해당하는 코드에서..
01. 사용자 인터페이스(UI) : 변경이 가장 많이 발생, 작업 시간↓, 업무 이해도↑, 수행 결과 오류↓ CLI(Command Line Interface) : 텍스트 형태 GUI(Graphical User Interface) : 아이콘이나 메뉴를 선택 NUI(Natural User Interface) : 사용자의 말이나 행동으로 조작 # 기본 원칙 : 직관성(누구나 쉽게 이해) / 유효성(정확하게 달성) / 학습성(쉽게 익힘) / 유연성(최대한 수용) # 설계 지침 : 사용자 중심 / 일관성 / 단순성 / 결과 예측 가능 / 가시선 / 표준화 / 접근성 / 명확성 / 오류 발생 해결 # 설계 도구 : 와이어프레임(초기 제작, 뼈대 설계) / 목업(실제 화면과 유사하게 만든 정적인 형태의 모형) / 스..