Programming

Programming/Java

Java의 이해: 인터페이스와 컬렉션

💡인터페이스 (Interface) 인터페이스는 사용하는 플랫폼이 다르더라도 프로그램이 같은 목적에 따라 같은 기능을 수행하도록 하는 것이다. 객체를 생성할 수 없으므로 필드를 선언할 때 객체 생성과는 관계없이 사용할 수 있는 static으로 선언한다. 1. 상수 (Public Static Final): 인터페이스에서 정해주는 값을 바꾸지 말고 제공하는 값만 참조 2. 추상 메소드 (Public Abstract): 추상 메소드를 오버라이딩해서 재구현 3. 디폴트 메소드 (Public Default): 기본적으로 인터페이스를 제공하지만 각각 수정 가능 4. 정적 메소드 (Public Static): 제공하는 인터페이스만을 사용 ⚬ 사용자 인터페이스 사람과 사람, 사람과 사물, 사물과 사물 사이를 연결하는 매..

Programming/Java

Java의 이해: 모듈의 응집도와 결합도 (모듈화)

💡모듈화 (Modularity) 모듈화를 통해 소프트웨어 규모를 여러 개의 조각으로 기능을 분리하여 복잡도가 감소하고, 효율적으로 소프트웨어를 관리할 수 있다. ⚬ 모듈 모듈은 모듈화를 통해 분리된 시스템의 기능으로, 프로그래밍 언어의 문법 구조로 정의된 컴포넌트를 의미한다. 서브루틴, 서브시스템, 프로그램, 작업 단위 등의 의미로 사용된다. 대부분 하나의 자바 파일에는 하나의 클래스가 있다. 그래서 모듈이라고 하면, 하나의 파일이라고 생각하면 되며, 메소드, 클래스, 패키지가 이에 해당한다. ⚬ 모듈화의 원칙 응집도와 결합도는 모듈을 평가하는 기준이 된다. 모듈 내 구성요소의 응집도(Cohesion)는 강하게(Strongly), 결합도(Coupling)은 느슨하게(Loosely) 하는 것이 좋다. 💡응..

Programming/Java

Java의 이해: 추상화, 캡슐화, 상속, 다형성

💡추상화 (Abstraction) 추상화는 관련 없는 사항을 은닉 또는 삭제하여 핵심적인 개념 또는 기능만을 간추려 내는 작업으로, 나에게 필요한 특징만을 표현하여 본질적 문제에 집중할 수 있도록 한다. ⚬ 소프트웨어 설계 소프트웨어 설계는 요구사항 분석 단계에서 산출된 요구사항명세서를 기반으로 어떻게 소프트웨어를 구현할 것인지 설계서를 통해 그 방법을 명시하는 과정이다. ⚬ 객체지향 설계 추상화 객체지향 프로그래밍(Object-Oriented Programming, OOP)은 추상화, 상속, 다형성, 캡슐화의 네 가지 특징을 가지며, 객체지향 프로그래밍 설계에서 추상화가 요구된다. 비슷한 특성을 가진 것을 그룹화하는 것을 객체지향 설계에서의 추상화라고 한다. 1. 과정 추상화 (Procedure Abs..

Programming/Java

Java의 이해: 클래스와 객체

💡클래스 (Class) 클래스는 멤버 변수 및 메서드를 포함하는 객체를 만들기 위한 코드 양식으로서, 인스턴스(메모리에 할당된 객체)를 생성하는 설계도(틀)라고 할 수 있다. 속성을 표현하는 변수인 필드(Field)와 기능을 표현하는 메서드(Method)로 구성된다. ⚬ 내부 클래스 (Inner Class / Non-Static Nested Class) 내부 클래스는 일반 클래스의 내부에 생성된다. 외부의 클래스는 new 인스턴스를 만들어 내부 클래스를 멤버 변수처럼 사용이 가능하다. 또한 내부 클래스는 외부에 있는 클래스의 자원을 직접 사용할 수 있다. ⚬ 중첩 클래스 (Nested Class) 중첩 클래스는 다른 클래스 내에 정의되어있는 클래스로, 클래스를 보조하는 용도로만 사용한다. 클래스를 묶어서..

Programming/C

C언어로 만든 행맨 게임 Deadline

Deadline은 '마감 기한'이라는 의미로, 영어 단어를 맞추는 Hangman 게임을 각색하여 만든 게임이다. 기존 Hangman은 글자 수만큼 빈칸이나 밑줄을 그려서 26개 철자 중 하나를 대었을 때 단어 안에 그 글자가 있으면 단어의 해당하는 칸에 적고, 그렇지 않으면 기회를 잃게 된다. Deadline은 사람을 매다는 방식으로 게임을 진행하지 않고, 철자가 틀릴 경우 마감 기한이 임박하는 방식으로 진행되며, 일주일이 넘기 전에 영어 단어를 맞추면 게임에서 승리한다. ▶ 게임 인트로 //DEADLINE 첫번째 인트로 void INTRO() { system("cls"); printf("\n\n\n"); printf(" ______ _______ _______ ______ ___ ___ __ _ ___..

Programming/C

C언어로 만든 캐주얼 게임 Number Train

Number Trian은 2015년도에 공부하다가 쉬면서 조금씩 만들었던 게임이다. 플레이어가 역장이라는 설정이 있어서 화물 5개의 합계를 입력해 화물을 운송하는 방식의 간단한 덧셈 게임이다. CUI로 개발했지만 최대한 철로 위 기차 화물을 운송한다는 느낌을 주려고 했다. 플레이어가 담당한 기차 10대 화물을 모두 운송하고 나면 결산이 나오며 하루 업무가 끝나게 된다. Number Trian is a game that I started developing in 2015. I worked on it gradually while taking breaks. The game features a setting where the player is a train conductor and involves a simpl..

Programming/R

R Programming 종합만족도 분석 및 IPA 계산

강서대학교 학생 대상 강서01 버스 이용 만족도 분석 isaac-christian.tistory.com 강서대학교 학생 대상 강서01 버스 이용 만족도 분석에 사용한 소스코드이다. 직접 만족도 설문지를 만들고, 항목 및 차원 만족도와 IPA 분석을 진행하면서 R언어 이해도를 높일 수 있었다. 1. 기본 package 설정 # 1. 기본 package 설정 library(tidyverse) library(tidymodels) library(rstatix) library(skimr) library(FSA) library(ggpubr) library(rpart) library(rpart.plot) library(caret) library(tree) # install.packages("") 2. 데이터 불러오기..

Programming/R

R Programming 만족도 지수 계산

1. 기본 package 설정 # 1. 기본 package 설정 library(tidyverse) library(tidymodels) library(rstatix) library(skimr) ❇️ tidyverse: 데이터 분석과 시각화를 위한 여러 R 패키지를 모아놓은 패키지 - dplyr, ggplot2, tidyr, purrr, stringr 등을 포함하고 있으며, 데이터 전처리, 조작, 시각화 등에 사용 ❇️ tidymodels: tidyverse와 마찬가지로 데이터 분석에 필요한 R 패키지를 모아놓은 패키지 - parsnip, recipes, rsample, dials, yardstick 등이 있으며, 머신러닝 모델 제작, 평가, 비교에 사용 ❇️ rstatix: 데이터 분석을 위한 통계 분석 ..

Isaac-Christian
'Programming' 카테고리의 글 목록 (45 Page)