본문 바로가기

반응형

IT

(235)
섹션 1. String(문자열)_3. 문장 속 단어 문제 한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요. 문장속의 각 단어는 공백으로 구분됩니다. 입력 첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다. 문장은 영어 알파벳으로만 구성되어 있습니다. 출력 첫 줄에 가장 긴 단어를 출력한다. 가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한 단어를 답으로 합니다. 입출력 예제 나름 TDD를 해보기 위해 작은 단위로 쪼개면서 sysout으로 확인하며 풀어보았다. 다음과 같이 두 가지 방식으로 풀어보았다. 1. split와 향상된 for 문을 사용한다. 2. indexOf와 substring을 사용한다. 1. split / 향상된 for문 먼저 첫번째 풀이방식이다. Scanner를 사용하여 ..
섹션 1. String(문자열)_2. 대소문자 변환 문제 대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요. 입력 첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다. 문자열은 영어 알파벳으로만 구성되어 있습니다. 출력 첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다. 입출력 예제 풀이 과정은 이전 문제와 동일하게 변수와 메소드 선언 > 메소드 구현 > 출력이다. 입력받을 문자열과 실제 작업이 이루어질 메소드를 선언한다. Scanner를 사용하여 입력받는다. 그 후에 생성한 메소드를 실행할 수 있도록 main에 객체를 생성한다. (이 때, 생성한 메소드가 static 이 붙어있다면 객체 생성을 해주지 않아도 된다.) 이제 메소드를 구현해보자..
섹션 1. String(문자열)_1. 문자 찾기 문제 한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요. 대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다. 입력 첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다. 문자열은 영어 알파벳으로만 구성되어 있습니다. 출력 첫 줄에 해당 문자의 개수를 출력한다. 입출력 예제 강의를 들으면서 풀어보니, 기존에 내가 작업하던 것과 가장 큰 차이점이 바로 '메소드'를 사용한다는 것이었다. 앞으로는 메소드와 TDD를 이용하여 알고리즘을 풀 수 있도록 연습해보려고 한다. 풀이 과정은 다음과 같은 순서를 가진다. 1. 입력받을 문자열과 문자 선언 2. 작업이 이루어질 메소드 선언 3. 메소드 구현 4. 출력 가장..
소스트리 설치 및 깃허브 연결 소스트리 설치 1. 아래 사이트로 접속하여 소스트리를 다운로드한다. https://www.sourcetreeapp.com/ Sourcetree | Free Git GUI for Mac and Windows A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac. www.sourcetreeapp.com 2. 건너뛰기를 누른다. 3. 깃에서만 사용할 것이므로 Mercurial에 체크를 해제한다. 4. Author Name에는 사용자이름, Author Email Address 는 이메일을 입력한다. 나중에 깃허브로 변경할거니 중요하지는 않다. 5. 아니..
이클립스 설치 방법 JDK, JRE 다운로드 및 설치 이클립스를 사용하기 위해서는 JDK, JRE가 필요하다. 설치 방법은 다음과 같다. 1. 아래 사이트에 접속한다. https://www.oracle.com/java/technologies/downloads/ Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com 2. 맞는 운영체제와 버전을 찾아 다운받는다. (필자는 윈도우 1.8 버전을 다운받았다.) 3. 체크박스에 체크를 하고 다운 버튼을 클릭한다. 4. 오라클 계정에 로그인하거나 ..
동기(synchronous)와 비동기(asynchronous), 블로킹(blocking)과 논블로킹(non_blocking) 동기(synchronous) 요청과 결과가 동시에 일어나는 것으로, 요청을 하게되면 결과가 나올때까지 아무것도 못하고 대기해야하는 작업입니다. 하나의 작업이 완전히 끝난 후에만 또 다른 작업을 진행할 수 있습니다. 얘를 들어 컴퓨터를 킨다고 가정해보자. 컴퓨터가 켜지기 전까지 사용자는 인터넷을 사용하거나 다른 프로그램들을 실행시킬 수 없다. 컴퓨터가 완전히 켜지기 전까지 기다리기만 해야하는 것이다. 비동기(asynchronous) 요청과 결과가 동시에 일어나지 않는 것으로, 요청을 한 후에 결과를 기다리지 않고 다른 요청이나 활동을 해도 되는 작업입니다. 요청을 한 후에 결과가 도출되는 시간 동안 다른 작업을 수행할 수 있습니다. 동기(synchronous)와 비동기(asynchronous)의 차이점 처..
인덱스(Index)와 힌트(Hint) 인덱스(Index) 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 특정 컬럼에 인덱스를 생성하면 해당 컬럼에 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 쿼리문에 인덱스가 생성된 컬럼을 WHERE 조건으로 걸어주면 옵티마이저가 판단하여 생성된 인덱스를 탈 수 있다. 옵티마이저 : 가장 효율적인 방법으로 SQL을 수행할 최적의 처리 경로를 생성해주는 DBMS의 핵심 엔진이다. 목차와 같은 역할을 한다. 인덱스(Index)의 구조 자료 구조에는 배열, 리스트, 스택, 큐, 해시, 트리 등 수많은 종류가 존재한다. 그 중에서도 인덱스에서 가장 많이 쓰이는 구조는 트리구조이며, 그 중에서도 'B Tree' ..
엘라스틱 서치(Elasticsearch) 엘라스틱 서치(Elasticsearch) 아파치 루씬(Apache Lucene) 기반의 JAVA 오픈소스 분산 검색 엔진이다. 엘라스틱 서치를 통해 루씬 라이브러리를 단독으로 사용할 수 있다. 방대한 양의 데이터를 신속하게 거의 실시간(NRT : Near Real Time)으로 저장, 검색, 분석할 수 있다. 즉, 루씬이라는 검색 라이브러리를 기반으로 검색 기능을 제공하는 오픈소스 검색엔진을 말한다. 사용 사례는 다음과 같다. 어플리케이션, 웹사이트 등의 검색 로깅, 로그 분석 보안 및 비즈니스 분석 애플리케이션 성능 모니터링 위치기반 정보 데이터 분석 및 시각화 비즈니스 인텔리전스 Business-Intelligence(BI) : 조직이 더 나은 의사 결정을 내리고 보다 효율적인 비즈니스 프로세스를 구..