전체 글 44

[정보처리기사] 실기 정리 - 5. 인터페이스 구현

5. 인터페이스 구현 인터페이스 요구사항 검증 - 사용자들의 요구사항이 요구사항 명세서에 정확하고 완전하게 기술되었는지 검토하고 개발 범위의 기준인 베이스라인을 설정하는 것 - 수행 순서 : 요구사항 검토 계획 수립 -> 검토 및 오류 수정 -> 베이스라인 설정 요구사항 검증 방법 - 요구사항 검토(Requirements Review) : 요구사항 명세서의 오류 확인 및 표준 준수 여부 등의 결함 여부를 검토 담당자들이 수작업으로 분석하는 방법 1) 동료검토(Peer Review) - 요구사항 명세서 작성자가 명세서 내용을 직접 설명하고 동료들이 이를 들으면서 결함을 발견하는 형태의 검토 방법 2) 워크스루(Walk Through) - 검토 회의 전에 요구사항 명세서를 미리 배포하여 사전 검토한 후에 짧..

[정보처리기사] 실기 정리 - 3. 통합구현 / 4. 서버 프로그램 구현

3. 통합구현 XML : 특수한 목적을 갖는 마크업 언어를 만드는 데 사용되는 다목적 마크업 언어 - 웹브라우저 간 HTML 문법이 호환되지 않는 문제와 SGML의 복잡함을 해결하기 위하여 개발됨 - 사용자가 직접 문서의(Tag)를 정의할 수 있으며, 다른 사용자가 정의한 태그를 사용할 수 있다. - 트리 구조로 구성되어 있어 상위 태그는 여러 개의 하위 태그를 가질 수 있다. SOAP (Simple Object Access Protocol) - 컴퓨터 네트워크 상에서 HTTP/HTTPS, SMTP 등을 이용하여 XML을 교환하기 위한 통신 규약 - 웹 서비스에서 사용되는 메시지의 형식과 처리 방법을 지정 - 프록시와 방화벽의 영향 없이 통신 가능 WSDL(Web Services Description L..

[정보처리기사] 실기 정리 - 2. 데이터 입,출력 구현

2. 데이터 입, 출력 구현 데이터베이스(Database) - 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터 DBMS(DataBase Management System; 데이터베이스 관리 시스템) - 사용자의 요구에 따라 정보를 생성해 주고,, 데이터베이스를 관리해 주는 소프트웨어 - 필수 기능 3가지 1) 정의 : 데이터의 형(Type)과 구조에 대한 정의, 이용 방식, 제약조건 등을 명시 2) 조작 : 데이터 검색, 갱신, 삽입, 삭제 등을 위해 인터페이스 수단을 제공 3) 제어 : 데이터의 무결성, 보안, 권한 검사, 병행 제어를 제공 스키마(Schema) 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것 종류 : 외..

[정보처리기사] 실기 정리 - 1. 요구사항 확인

1. 요구사항 확인 소프트웨어 생명 주기(Software Life Cycle) - 소프트웨어 생명 주기는 소프트웨어를 개발하기 위한 설계, 운용, 유지보수 등의 과정을 각 단계별로 나눈 것 1. 폭포수 모형(Waterfall Model) - 각 단계를 확실히 매듭짓고 그 결과를 철저하게 검토하여 승인 과정을 거친 후에 다음 단계를 진행하는 개발 방법론 (이전 단계로 돌아갈 수 없다는 전제) - 가장 오래되고 가장 폭넓게 사용된 전통적인 소프트웨어 생명 주기 모형 - 고전적 생명 주기 모형 - 각 단계가 끝난 후에는 다음 단계를 수행하기 위한 결과물이 명확하게 산출되어야 한다. 2. 프로토타입 모형(Prototype Model, 원형 모형) - 사용자의 요구사항을 파악하기 위해 실제 개발될 소프트웨어에 대..

[Java/Spring Boot] Java로 웹 크롤링 해보기 (Naver 날씨)

오늘은 Java로 웹 크롤링을 해보았다. 보통 웹 크롤링은 Python의 Beautiful Soup 라이브러리를 사용해서 많이 하는데, 그 이유는 웹 크롤링에 대한 가장 쉬운 접근 방법 중 하나이기 때문이다. 물론 다른 프로그래밍 언어들로도 웹 크롤링을 할 수 있다. 나는 예전부터 Java로 웹 크롤링을 해보고 싶었기 때문에 Java로 해보았다. Java로 웹 크롤링을 하기 위해서는 Jsoup 라이브러리를 이용해야 한다. Jsoup이란? Jsoup은 HTML 파싱 Java 라이브러리이다. DOM, CSS 및 JQuery와 같은 방법을 사용하여 데이터를 추출하고 조작하는 API를 제공한다. 주로 정적인 웹 페이지를 파싱 하고자 하는 경우, 간단하게 HTML을 가져와 파싱을 할 수 있는 라이브러리이다. 먼저..

Java 2023.02.22

[알고리즘] 깊이우선탐색(DFS) 과 너비우선탐색(BFS)

수 많은 알고리즘 중 당연히 알고 있어야 하는 기본 알고리즘 중 하나가 DFS와 BFS이다. 오늘은 이 두 가지 알고리즘에 대해 정리를 해보려고 한다. 깊이우선"탐색" 과 너비우선"탐색"과 같이 이 알고리즘은 무언가를 탐색하는 것이다. 그렇다면 무엇을 탐색하는 것일까? 바로 그래프를 탐색하는 알고리즘이다. 그렇다면 그래프란 무엇일까? 그래프 (graph) 그래프는 요소들이 서로 복잡하게 연결되어 있는 관계를 표현하는 자료구조이다. 예를 들어, 지하철 노선도는 많은 역들이 어떻게 연결되어 있는지를 알려주며, 소셜 네트워크 서비스의 인맥 지도는 사람들의 복잡한 친구 관계를 표현한다. 그래프는 선형 자료구조들이나 트리보다 더 일반화 된 자료구조를 제공하고 많은 분야에서 널리 사용되고 있다. 정점과 간선 그래프..

알고리즘 2023.02.21

[알고리즘] 정렬 알고리즘 (삽입, 선택, 버블, 퀵, 힙)

정보처리기사 공부를 하는 도중, 여러 가지 정렬 알고리즘에 대해 정리를 할 필요가 있어 이 글을 쓰게 되었다. 정렬 알고리즘은 컴퓨터 분야에서 중요시되는 문제 가운데 하나로 어떤 데이터들이 주어졌을 때 이를 정해진 순서대로 나열하는 문제이다. 정렬 알고리즘 중 주요 알고리즘인 5가지에 대해 정리를 해보려고 한다. 1. 삽입 정렬 (Insertion Sort) 2. 선택 정렬 (Selection Sort) 3. 버블 정렬 (Bubble Sort) 4. 퀵 정렬 (Quick Sort) 5. 힙 정렬 (Heap Sort) 삽입 정렬(Insertion Sort) 삽입 정렬은 가장 간단한 정렬 방식으로 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬한다. N번째 키를 앞의 N-1개의 키와 ..

알고리즘 2023.02.17

[알고리즘] 분할 정복 알고리즘 (Divide and Conquer)

❓분할 정복 알고리즘 (Divide and Conquer) 란? 분할 정복(Divide and Conquer) 알고리즘은 여러 알고리즘의 기본이 되는 해결방법으로, 그대로 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 방법이다. 대표적인 예로는 정렬 알고리즘 중에서 퀵 정렬이나 합병 정렬과 이진탐색, 선택 문제, 고속 푸리에 변환(FFT) 문제들이 대표적이다. 🔑설계 분할 정복은 상단에서 분할하고 중앙에서 정복하고 하단에서 조합하는 형태로 도식화 할 수 있다. 분할 (Divide) : 문제를 더이상 분할할 수 없을 때까지 동일한 유형의 여러 하위 문제로 나눈다. 정복 (Conquer) : 가장 적은 단위의 하위 문제를 해결하여 정복한다. 조합 (Combine) : 하위 문제에 대한 결과를 ..

알고리즘 2023.01.29

[백준] 9461번 : 파도반 수열 (JAVA)

동적 계획법 관련 문제인 9461번 : 파도반 수열 문제를 풀었다. 동적 계획법에 대해 아직 이해하지 못했다면 다음의 블로그에서 확인하면 된다. https://lucy1215.tistory.com/23 [알고리즘] 동적 계획법 (Dynamic Programming) ❓동적 계획법 (또는 다이나믹 프로그래밍 , DP)란? 하나의 큰 문제를 여러 개의 작은 문제로 나누어서 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 것으로 특정한 알고리즘이 아닌 하 lucy1215.tistory.com 바로 이전, 동적 계획법 관련 문제는 다음의 블로그에서 확인하면 된다. https://lucy1215.tistory.com/27 [백준] 1904번 : 01타일 (JAVA) 동적 계획법(DP)을 공부한 뒤, DP관..

백준 2023.01.27

[알고리즘] 이진 탐색 (Binary Search)

❓이진 탐색 (또는 이분 탐색, Binary Search) 란? 정렬되어 있는 (이진 탐색의 주요 조건) 배열에서 데이터를 찾으려 시도할 때, 순차탐색처럼 처음부터 끝까지 하나씩 모든 데이터를 체크하여 값을 찾는 것이 아니라 탐색 범위를 절반씩 줄여가며 찾아가는 Search 방법이다. 이진 탐색은 정렬된 리스트에만 사용할 수 있다는 단점이 있지만, 검색이 반복될 때마다 검색 범위가 절반으로 줄기 때문에 속도가 빠르다는 장점이 있다. 👉동작 방식 이진 탐색 알고리즘은 리스트의 중간 값과 비교하여 검색값을 찾는다. 중간 값을 찾아야 하기 때문에 반드시 정렬된 배열에서만 사용할 수 있다. 이진 탐색의 동작 방식은 다음과 같다. 1. 배열의 중간 값을 가져온다. 2. 중간 값과 검색 값을 비교한다. 1. 중간 ..

알고리즘 2023.01.24