Skip to content
Bible, Lee, Data

Bible, Lee, Data

Faith, software, data, and everyday life.

EngineeringAll posts

Engineering/Backend

Java 계산기 소스코드

코드를 실행하면 사용자로부터 두 개의 숫자와 연산자를 입력받아서 해당 연산을 수행하고 결과를 출력하며, 계산 결과가 출력될 때마다 useMemory 변수가 true로 설정되어 이전 결과를 메모리에 저장된다. 해당 소스코드에는 0으로 나누는 경우에 대한 예외 처리도 포함되어 있으며, 'M' 연산자를 사용하여 현재 결과 값을 메모리에 저장하고, 'R' 연산자를 사용하여 메모리에 저장된 값을 불러와서 계산에 활용할 수 있고, 'C' 연산자를 사용하면 메모리를 초기화 할 수 있다. 소스코드 package domain; import java.util.Scanner; public class Calculator { public static void main(String[] args) { Scanner scanner ..

Engineering/Database

[R] R Programming Web Crawling 워드클라우드

1. 기본 package 설정# install.packages("ggwordcloud")library(ggwordcloud) 2. 실행 시 매번 다르게 그려지도록 설정set.seed(123)color % slice_max(n, n = 50)), replace = TRUE) 3. 흑백으로 그리기set.seed(123)word_count %>% filter(n > 20) %>% ggplot(mapping = aes(label = word, size = n)) + geom_text_wordcloud_area() + scale_size_area(max_size = 20) ..

Engineering/Database

[R] R Programming Web Crawling 단어 빈도 분석

1. 기본 package 설정# install.packages("tidyverse")# install.packages("tidytext")library(KoNLP)useNIADic() # 단어사전library(tidyverse)library(tidytext) 2. 단어 빈도 및 퍼센테이지(%) 계산word_count % count(word, sort = TRUE) %>% mutate(prop = n / sum(n)) %>% ungroup()word_count 3. 단어 확인3-1. 전체 데이터 확인word_count %>% slice_max(n, n = 100) %>% print(n = 100) 3-2. 전체 데이터에서 상위 100개만 확인word_count %>% slice_max(n, n ..

Engineering/Database

[R] R Programming Web Crawling 형태소 분석

1. 기본 package 설정# install.packages("tidyverse")# install.packages("tidytext")useNIADic() # 단어사전library(KoNLP)library(tidyverse)library(tidytext) 2. 데이터 가져오기tm_tb ✔️여러 페이지의 데이터를 가져오는 방법으로 내보내기한 데이터를 사용한다. 3. 문서 전처리 (정규표현식 이용)tm_tb % mutate(본문 = gsub("[[:cntrl:]]", "", 본문)) %>% # 엔터 등 제거 mutate(본문 = gsub("[[:punct:]]", " ", 본문)) %>% # 구두점 등 제거 mutate(본문 = gsub("[[:digit:]]", "", 본문)) # 숫자 제..

Engineering/Backend

Java 클래스 예시 소스 코드: 추상화, 캡슐화, 상속, 다형성

Java의 이해: 클래스와 객체 💡클래스 (Class) 클래스는 멤버 변수 및 메서드를 포함하는 객체를 만들기 위한 코드 양식으로서, 인스턴스(메모리에 할당된 객체)를 생성하는 설계도(틀)라고 할 수 있다. 속성을 표현하는 변수 isaac-christian.tistory.com Java의 이해: 추상화, 캡슐화, 상속, 다형성 💡추상화 (Abstraction) 추상화는 관련 없는 사항을 은닉 또는 삭제하여 핵심적인 개념 또는 기능만을 간추려 내는 작업으로, 나에게 필요한 특징만을 표현하여 본질적 문제에 집중할 수 있도록 한 isaac-christian.tistory.com 이 글은 Java의 이해: 클래스와 객체, Java의 이해: 추상화, 캡슐화, 상속, 다형성 글을 참고한다. Car 클래스 소스코드 ..

Engineering/Backend

Java의 이해: 테스트 (파레토, 롱테일 법칙 / 정적, 동적 테스트 / V모델)

💡 테스트 소프트웨어 개발에서의 테스트는 소프트웨어의 품질을 평가하고 결함을 발견하여 실제 동작 사이의 차이를 수정하는 작업이다. 테스트는 소프트웨어의 오류를 최소화하고 사용자에게 안정적이고 신뢰할 수 있는 소프트웨어를 제공하기 위해 필수적이다. 그러나 테스트는 결함이 있음을 보여줄 뿐, 결함이 없음을 증명할 수는 없다. 소프트웨어는 복잡하고 다양한 입력 조건과 환경에서 실행되기 때문에 모든 가능성을 고려하여 완벽하게 테스트하는 것은 불가능하다. 따라서 테스트는 소프트웨어의 특정 부분을 검사하고 그 부분에 대한 오류를 찾아내고 수정함으로써 소프트웨어의 신뢰성과 안정성을 향상시키는 데에 주로 사용된다. ⚬ 파레토 법칙 파레토 법칙은 경영학자 빌포르도 파레토가 이탈리아에서 20%의 사람이 80% 부를 소유하..

Engineering/Backend

Java의 이해: 구현 (프로그래밍 언어의 규칙)

💡 프로그래밍 언어 구현 단계에서는 단순히 프로그래밍 언어와 코딩 규칙에 대해 다룬다. 1. Fortran: 항공, 무기 분야 2. Cobol: 은행 시스템 3. C/C++/C#: 자율주행, 홈 오퍼레이션(Iot 사물인터넷), 임베디드 시스템(컴퓨터 시스템이 들어가 있지 않은 곳에 시스템을 넣는 것) ⚬ .NET Framework(닷넷 프레임워크) .NET은 모든 운영 체제에서 실행할 수 있는 데스크톱, 웹, 모바일 애플리케이션 빌드를 위한 오픈 소스 플랫폼이다. .NET은 CLS를 따르는 언어라면 모두 실행 및 빌드가 가능하다. 4. Java: 웹 개발, 모바일 애플리케이션, 데스크톱 애플리케이션, 게임 개발, 데이터베이스 ⚬ 자바 가상 머신(JVM: Java Virtual Machine) JVM은 J..

Engineering/Backend

Java의 이해: 디자인 패턴

💡 디자인 패턴 Design pattern 디자인 패턴은 소프트웨어 설계 과정에서 자주 발생하는 문제를 패턴 형태로 일반화한 것으로, 이를 이용하면 코드 및 디자인을 재사용하여 모듈의 역할 또는 모듈 간의 인터페이스 구현 설계 등의 작업을 효율적이고 간편하게 할 수 있다. ⚬ GoF의 디자인 패턴 1995년 GoF(Gang of Four)가 처음으로 디자인 패턴을 구체화하였다. GoF의 디자인 패턴은 소프트웨어 공학에 가장 많이 사용되는 디자인 패턴이며, 목적에 따라 행위 패턴 11개, 구조 패턴 7개, 생성 패턴 5개 총 23개의 패턴으로 구성되어 있다. 💡 행위 패턴 Behavioral 행위 패턴은 클래스나 객체의 상호작용, 손실 결합을 패턴화한 것으로, 하나의 객체를 여러 객체로 분할하여 결합도를 ..