[CS 1-2 | 프로그램 설계 방법론] Java GUI로 슬라이드 퍼즐게임 제작 13주차
·
CS 대학강의
슬라이드 퍼즐게임 - GUI 구현 [Layout & ActionListener 처리] 코드 구현 - 초기 GUI Ver.1 슬라이드 퍼즐 게임의 Model 클래스 {PuzzlePice} - 퍼즐 조각 데이터를 관리하는 Model 클래스 package slidePuzzle_GUI; // 퍼즐 조각 Data Class public class PuzzlePiece { private int face; /** Constructor - PuzzlePiece 퍼즐 조각을 만듬 * @param value - 퍼즐 조각 위에 표시되는 값 */ public PuzzlePiece(int value) { face = value; } /** face - 조각의 액면 값을 리턴 */ public int face() { retur..
[CS 1-2 | 대학생을 위한 실용금융] 신용관리 10주차
·
CS 대학강의
신용이란, 신용은 미래 어느 시점에 돈을 갚겠다고 약속하고 현재 돈을 빌릴 수 있는 능력을 말한다. 개인의 경제활동에 대한 사회적 평가를 의미한다. 우리가 살아가는 일상 경제생활은 신용, 신뢰를 기반으로 하는 거래가 대부분이다. (학자금 대출, 휴대전화 개통, 자동차 할부 구입 등) # 신용관리의 중요성 개인신용정보 개인신용정보는 금융거래 등 상거래에 있어서 거래상대방에 대한 신용도, 신용거래능력 등을 판단할 때 필요한 정보로서 식별정보, 신용거래정보, 신용도 판단 정보, 신용능력정보 등을 말한다.
[CS 1-2 | 프로그램 설계 방법론] abstract 클래스, Interface, 상속이란
·
CS 대학강의
abstract 클래스 public abstract class CardPlayer implements CardPlayerBehavior { private Card[] hand; // 갖고 있는 카드 private int card_count; // 갖고 있는 카드의 장 수 /** Constructor CardPlayer - max_cards 카드를 수용가능한 Card 배열 객체를 만들어 CardPlayer 생성 * @param max_cards - 들고 있을 수 있는 카드의 최대 장수 */ public CardPlayer(int max_cards) { hand = new Card[max_cards]; card_count = 0; } /** wantsACard - 카드 한 장을 받겠는지 답한다. * @ret..
[CS 1-2 | 시스템 프로그래밍 기초] 함수 포인터 & 포인터 배열 14주차
·
CS 대학강의
함수 포인터 들어가기가 전 CallBack 함수를 사용할 때 함수 포인터를 통해 응용한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다. 함수의 구조 - 포인터 관점에서의 이해 int fun_1 (int a) 함수의 "( )" 는 연산자로써 컴파일러가 인식한다. 함수포인터 함수 포인터는 함수의 주소를 저장하는 포인터 함수도 변수와 마찬가지로 컴파일 및 링크 후 메모리 특정 번지에 할당된다. 함수 코드나 문자열 리터럴은 실행 중 변경되지 않으므로 일기 전용인 텍스트 세그먼트에 할당된다. 텍스트 세그먼트의 코드도 메모리 특정 번지에 로드되며 실행 중 함수의 주소로 사용된다. 함수에 대한 포인터를 선언하려면 함수 포인터가 가리킬 함수의 원형이 필요하다..
[CS 1-2 | 시스템 프로그래밍 기초] 배열 포인터 13주차
·
CS 대학강의
배열 - 포인터 배열은 아래와 같이 선언할 수 있다. int score[5]; 선언된 배열의 이름은 배열의 첫번째 원소의 주소를 나타낸다. 아래와 같다고 보면된다. score = score[0] 배열의 확장 - 2차원 배열 배열에는 2차원 배열이 존재한다. 아래와 같이 2차원 배열을 선언할 수 있다. int score[5][5]; 2차원 배열은 배열의 Index에 따라서 배열의 주솟값이 달라진다. 아래의 코드를 살펴보면서 2차원 배열에 대해서 이해해보자. socre + 1 = score[1][5] 2차원 배열은 첫번째 인자와 두번째 인자 쌍으로 이루어져있다. C언어에서 2차원 배열을 활용하려면, 포인터 개념을 이해해야지만 활용할 수 있다. 모든 변수나 배열 같은 것들은 선언 즉시 컴퓨터의 메모리의 남는 ..
[CS 1-2 | 프로그램 설계 방법론] Java GUI 12주차
·
CS 대학강의
GUI - Graphical User Interface 클라이언트와 문자가 아닌 눈에 보이는 다른 것들로 소통 이제 본격적으로 클라이언트와의 이벤트 처리요소가 새롭게 추가되었다. 기존에는 콘솔에서만 소통했으면, GUI라는 새로운 클라이언트 이벤트가 추가되어 이에 대해서 고려하는 MVC 아키텍처 설계를 진행해야한다. 아예 새로운 MVC 아키텍처가 아닌 여기서 GUI 이벤트 처리를 위한 클래스가 확장된다. (확장의 확장의 확장) Event-Driven Programming 사용자 주도로 수시로 발생하는 일을 처리하는 GUI 프로그래밍이다. Event-handler = Action Listener 액션 이벤트가 발생하기를 기다리고 있다가, 액션 이벤트가 발생하면 처리 (액션 이벤트 예외처리) Java GUI ..
[CS 1-2 | 대학생을 위한 실용금융] 투자의 정리 8주차
·
CS 대학강의
해외 주식 투자의 이점 금융위기 시 달러 등 강세로 자산가치 보전이 가능하다. 고배당 및 주주 친화적 기업운영 분산투자 효과 (리스크를 감소시킬 수 있음.) 환율변동위험의 처리 상대적으로 안전 통화인 미달러화 등 해외 현지 통화로 투자하고, 환율변동 위험을 수용한다. 자산을 원화로 보유할 경우 금융 위기가 발생하면 자산가치가 하락할 수 있으나 외화로 투자하여 보유할 경우 자산가치 유지 가능하다. 반면, 장기적으로 미달러화의 가치가 하락할 수 있다는 일부 의견도 있다. 해외주식 투자 시 고려사항 미연준의 향후 금리인상 등 대응조치는 주시할 필요가 있다. 지난 10여년 이상 글로벌 금융위기, 코로나 19로 부채를 기반으로 금융시장이 크게 성장 주식시장의 장기흐름을 쉴러 등으로 볼 때 현재 S&P 500 등 ..
[CS 1-2 | 시스템 프로그래밍 기초] 포인터 심화 12주차
·
CS 대학강의
포인터 산술 포인터에 덧셈을 할 수 있으며, 그 결과는 데이터 타입에 따라 달라진다. 즉, 포인터 산술을 진행하면 다음 데이터를 가리키는 것으로 생각하자. int 는 메모리에서 4byte 할당 char 은 메모리에서 1byte 할당 double 은 메모리에서 8byte 할당 배열의 이름은 배열 첫 번째 요소의 주소를 의미한다. arr + 1 = &arr[0] + 4 = &arr[1] 포인터 산술 - 증감 연산자 괄호를 쳐서, 연산 순위를 헷갈리지 않도록 사용하자. 포인터 산술 - 증감 연산자 배열과 포인터의 차이점 || 중요~ 배열의 이름은 배열의 시작 주소를 가리키는 상수 포인터 상수는 L-value로 사용할 수 없다. 즉, 등호의 왼쪽에 올 수 없다. 상수는 프로그램 실행 중 바꿀 수 없는 값을 의미..
[CS 1-2 | 프로그램 설계 방법론] Java 인터페이스와 상속 10주차
·
CS 대학강의
인터페이스 - 작업의 분업을 위한 도구 아래와 같이 기존의 MVC 아키텍처로 구성한 프로그램은 종속관계가 있기때문에 분업하여 개발을 진행하기가 어려움이 있다. Model, ViewOut이 만들어지고, Controller 개발이 가능해짐. 그래서, Controller 개발자는 Model, ViewOut이 만들어질 때까지 놀아야됨 ㅎㅎ.. 그래서 "인터페이스"를 정의해서 분업화를 가능한 환경을 만든다. 인터페이스 란? 인터페이스는 자바에서 클래스들이 구현해야하는 동작을 지정하는 용도로 사용되는 추상 자료형이다. class 대신 interface라는 키워드를 이용하여 선언할 수 있으며 메소드 시그니처와 상수선언만을 포함할 수 있다. 클래스에서 인터페이스를 구현하기 위해서는 implements 키워드를 사용하..
[CS 1-2 | 오픈소스 SW 기초] 가상화 & 리눅스 컨테이너 with Docker 6주차
·
CS 대학강의
가상화란 전통적으로 하드웨어에 바인딩된 리소스를 사용하여 유용한 IT 서비스를 만들 수 있게 해주는 기술 사용자 또는 환경에 기능을 분산하여 물리적 시스템의 전체 용량을 사용 가상화 작업을 통해, 하나의 하드웨어를 통해서 2개 이상 (여러 개)의 서버를 분할하여 관리할 수 있다. 가상화의 역사 현재는 클라우드 컴퓨팅으로 가상화가 발달되어 있다. 클라우드 컴퓨팅은 클라우드 서비스로, 무선으로 다른 곳에 위치한 서버에 접근하여 서버를 사용할 수 있게 해준다. 대표적으로 AWS, Naver Cloud, Google Cloud 등등이 있다. 하이퍼바이저 - 가상화의 핵심 하이퍼바이저는 가상 머신을 생성하고, 실행하는 소프트웨어이다. 메모리나 프로세싱과 같은 리소스를 (하드웨어 자원을) 가상으로 공유하여 하나의 ..