[CS 1-2 | 프로그램 설계 방법론] Java로 병원 입원 관리 서비스 제작
·
CS 대학강의
병원 입원 시 관리 서비스 프로그램 기획 프로그램을 처음실행할 때는 입실 or 퇴실 서비스를 선택할 수 있다. (입실 서비스를 선택하면,) 입원실의 빈자리가 있는지 확인한다. 입원실의 빈자리가 있으면, 입실서비스를 구현한다. 환자의 정보인 체온, 혈압(상|하)를 입력받는다. - 입력예외처리는 형식적 Validation만 진행했음 ㅎㅎ 받아진 환자의 정보를 토대로 입원실에 환자를 등록한다. 새로 업데이트된 입원실의 정보를 출력한다. 입원실의 빈자리가 없으면, 입원실 빈자리가 없음의 예외처리를 한다. (퇴실 서비스를 선택하면,) 환자 번호를 입력받는다. 환자 번호에 따른 입원실에 환자가 존재하는지 확인한다. 입원실에 환자가 존재한다면, 환자를 퇴실시킨다. 새로 업데이트된 입원실의 정보를 출력한다. 입원실에 ..
[CS 1-2 | 프로그램 설계 방법론] Java로 스도쿠 프로그램 제작
·
CS 대학강의
이번 포스팅의 목적은 스도쿠 게임을 만드는 과제를 하면서 배운 점들을 정리하도록 하겠다 ㅎ! 포스팅 방식은 스도쿠 게임을 구현할 때 진행했던 순서대로 하나씩 회고하겠다~ 스도쿠 게임 기획 (사실상 구현의 시작이자, 꽃) 우선, 스도쿠 게임 기획을 진행했다. 스도쿠 게임은 9X9 스도쿠 판에서 게임이 진행되며, 규칙은 다음과 같다. 9개의 가로줄, 세로줄에 1 ~ 9까지의 숫자를 하나씩만 넣는다. 3X3 단위로 9등분 한 격자보드에도 1 ~ 9 숫자를 하나씩만 넣을 수 있다. 스도쿠의 모든 칸을 다 채우면 게임이 종료된다. 기획에서 스도쿠 게임에 존재하는 기능들을 나열했고, 게임 진행에 따른 기능을 정리했다. 그럼, 이제 기획에서 구성한 기능들을 통해 스도쿠 게임을 설계해보자. (사용자 관점에서 설계를 진..
[CS 1-2 | 프로그램 설계 방법론] 배열 객체 & MVC 아키텍처 설계 실제 프로그램에 적용해보기 9주차
·
CS 대학강의
배열 동일한 타입의 값을 정해진 개수만큼 나란히 이어 붙여 놓은 구조 # 배열 특징 배열array은 객체object 배열 생성시 각 원소는 기본값으로 초기화 # 사례 학습 - 놀이 카드 해당 사례학습은.. 구조화되지 않은 설계로 인해 패스하도록 하겠다.. - 설계를 제대로 하지않으면, 개발을 할 때 막막하다~ 2차원 배열 2차원 배열은 1차원 배열에 또다른 1차원 배열을 합쳐서 생성된 "배열 객체"이다. 다음과 같이 2차원 배열 객체를 생성할 수 있다. int [][] a = new int[3][4]; 그러면, 아래와 같이 "배열 객체"가 존재하게 되는 것이다 가로줄의 수는 1차원 배열 형태로 찾으면 되고, 세로줄의 수는 2차원 배열 형태로 한 행을 기준으로 세로줄 의 수를 찾는다. 들쭉날쭉 배열 Rag..
[CS 1-2 | 오픈소스 SW 기초] 네트워크 통신 | 소켓 통신 5주차
·
CS 대학강의
소켓을 이용한 네트워크 통신 네트워크 상에서 통신은 "소켓"을 이용해 진행된다. 소켓에 IP, Port 번호와 프로토콜을 담아 통신을 하는 상황에 적합한 소켓을 만들어 통신을 진행한다. - HTTP 통신은 80포트로 통신, HTTPS 통신은 443 포트로 통신 네트워크 통신의 종류 소켓 프로그래밍 || HTTP 프로그래밍 소켓 프로그래밍 서버와 클라이언트가 특정 포트를 통해 실시간으로 양방향 통신 을 하는 방식 소켓 연결은 TCP/CP 프로토콜을 기반으로 맺어진 네트워크 연결 방식을 의미한다. 필요한 경우 클라이언트만 요청을 보낼 수 있는 HTTP 프로그래밍과 달리 소켓 프로그램이은 서버 역시 클라이언트에게 요청을 보낼 수 있는 것이 가장 큰 특징이다. 소켓 통신은 주로, 게임과 실시간 스트리밍 서비스에..
[CS 1-2 | 이산수학] 행렬의 연산 10주차
·
CS 대학강의
해당 포스팅은 강의시간에 진행했었던 개념을 잘 요약해서 설명하는 사진을 캡처해서 정리한다. 그렇기에, 시간이 남는다면..? 캡처한 자료를 토대로 블로그를 완성시킬 것이다 ㅎㅎ.. 행렬의 연산인 덧셈, 뺼셈, 곱셈에 대해서 개념을 다시 학습해봐야겠다 ㅎㅎ... 문제를 풀려면 반드시 필요함 ㅎㅎ.. # 행렬의 기본 연산을 이용해서 원하는 행렬을 구성하는 법 # 행렬의 행렬식을 계산하는 사루스의 공식 # 행렬식의 성질 - 다음은 행렬식의 표준으로 활용된다. # 행렬 - 전치행렬 # 행렬의 곱 - 행렬식의 곱 # 행렬의 어떤 행(또는 열)의 각 원소에 같은 k를 곱하여 얻은 행렬식과 처음 행렬식에 k를 곱한 것과 같다. 모든 행렬식의 성질은 사루스의 공식을 토대로 계산된 행렬식을 토대로 논증이 완료된 "행렬식의..
[CS 1-2 | 시스템 프로그래밍 기초] 디버깅과 소프트웨어 설계 10주차
·
CS 대학강의
매크로 함수를 사용하면 메모리에 따로 스택 프레임을 생성할 필요가 없다. 그렇기에, 매크로 함수를 사용해 연산 시 속도가 올라간다는 장점이 있다 ㅎㅎ....! 매크로 상수 DEBUG를 통해 조건에 따라 printf()문을 출력하도록 설정할 수 있다. DEBUG 가 할당되어 있으면, printf() 출력 ~~ printf() 출력하지 않음. 예외처리를 통한 디버깅 구현 - assert() 알고리즘을 구성할 때 assert()를 사용해 원하지 않은 값이 들어갈 때 assert()로 강제 종료시켜 프로그램 설계가 잘못되었다고 디버거를 진행한다. # return 과 exit() 함수는 다르다! 운영체제를 같이 공부해야 알 수 있는 개념이다. return은 운영체제에게 return 값을 받아서 프로그램을 종료하는..
[CS 1-2 | 이산수학] 알고리즘 9주차
·
CS 대학강의
알고리즘이란 알고리즘은 어떤 문제가 주어졌다면, 가장 먼저 문제를 수학적인 문맥으로 변환을 시킨다. 즉, 문제를 일반화 한 이후 모델을 이용하여 풀어야 한다. 알고리즘은 계산을 하거나, 문제를 해결할 정확한 명령을 유한이 나열한 것이다. 의사코드란 프로그래밍 언어를 사용해서 알고리즘을 표현한다. 의사 코드는 인간의 언어와 실제 프로그래밍 언어의 중간 단계로 알고리즘을 설명한다. 탐색 알고리즘 - 선형 탐색이란 정렬된 리스트에서 원소를 찾는 문제를 탐색 문제라고 한다. 이러한 탐색 문제에서 데이터를 선형적으로 찾을 때를 선형 탐색이라고 한다. ex) a1, a2, a3, a4, a5 ... a105... an 으로된 리스트가 있다고 가정하고,/ a105 데이터를 찾아야한다. 선형 탐색 알고리즘을 이용해 a..
[안드로이드] 3주차: Activity 전환 & Fragment 전환
·
📚 스터디/프론트엔드
안드로이드의 4대 컴포넌트 Activity 사용자와 직접적인 상호작용 Service 백그라운드에서 사용자에게 도움이 되는 작업을 수행 멜론 뮤직, 앱을 종료해도 실행되도록 해주는 작업 Broadcast Recevier 특정 이벤트 발생 시 앱에 알림 Content Provider 시스템이나 다른 앱 사이에 데이터 제공 및 전달 Activity 애플리케이션의 실제 동작을 구현한다. Layout : 동작을 실현할 수 있는 화면을 구성한다. 따라서, Activity는 Layout과 결합되어야 비로소 의미가 있다. Activity와 Layout을 결합하는 방법 1. findViewById 안드로이드 리소스를 관리하는 R클래스를 통해 View를 찾는다. 이때, R클래스는 XML 파일에 새로운 리소스를 기록하면 자..
프로그램 설계 방법론 - 트러블 슈팅 [주사위 게임 과제]
·
CS 대학강의
보호되어 있는 글입니다.
프로그램 설계 방법론 - #08 [반복문 설계 & MVC 아키텍처 | 공굴리기]
·
CS 대학강의
반복 횟수 고정 - While 반복 횟수를 알고 있을 때 다음과 같은 반복구조를 나타낸다. 가장 흔한 반복구조 int n = GOAL_VALUE; int count = 0; while (count < n) { // 코드 count += 1; } 반복 횟수 사전 예측 불가 반복 횟수를 알고 있지 않을 때 다음과 같은 반복구조를 나타낸다. 사용자의 입력에 따른 반복을 할 때 흔히 쓰는 반복구조이다. boolean processing = true; while (processing) { // 입력 if (/* 종료 신호 수신 */) processing = false; else { // 코드 } } # 반복 횟수 사전 예측 불가 - 예시코드 시험 점수 평균을 구해주는 코드이다. 다음은 사용자의 입력을 받고, 사용..