함수(function)정의 ; 문장(코드)의 집합0개 이상의 매개변수가 함수에 전달될수 있다# 함수 기본 구조def 함수명(매개변수1, 매개변수2, ...): 문장# exprint()함수 호출 시, 함수에 정의된 인자 개수보다 적거나 많은 수의 인자를 넘겨주면 예외 발생(TypeError)def print_n(value, n): # 2개의 매개변수 for i in range(n): print(value) print_n("hi") # 1개의 매개변수만 넘겨주면 TypeError! 1. 가변 매개변수 함수정의 ; 매개변수를 원하는 만큼 받을 수 있는 함수제약가변 매개변수 뒤에 일반 매개변수가 올 수 없다가변 매개변수는 하나만 사용 가능# 가변 매개변수 함수 기본 구조def..
운영체제는 프로그램 실행을 위한 환경을 제공한다 운영체제가 제공하는 서비스User interfaceProgram executionI/O operationFile-system manipulationCommunucationsError detectionResource allocationLoggingProtection and Security 운영체제에 대한 기본적인 인터페이스Command Line Interface(CLI)Graphical User Interface(GUI)Touch-Screen Interface 시스템 콜운영체제에 의해 이용가능해지는 서비스들에 대한 인터페이스 APIApplication Programming Interface프로그램과 프로그램을 이어주는 매개체프로그램 간 데이터를 주고 받기 ..
운영체제란?운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어운영체제는 응용 프로그램에게 기반을 제공한다운영체제는 사용자와 하드웨어 간 중재자 역할을 수행한다운영체제는 컴퓨터에서 항상 실행되는 프로그램일반적으로, Kernel이라고 한다사용자 관점에서의 운영체제사용의 용이성을 목표로 한다시스템 관점에서의 운영체제자원 할당과 제어를 목표로 한다 컴퓨터 시스템컴퓨터 시스템은 하드웨어, 운영체제, 응용 프로그램, 사용자를 구성요소로 한다 하드웨어CPU, 메모리, 입출력장치로 구성된다 인터럽트장치 컨트롤러가 인터럽트 요청 라인에 인터럽트를 발생시킨다CPU는 하나의 명령을 실행 완료할 때마다, 인터럽트 요청 라인을 확인하여 포착한다CPU는 인터럽트 핸들러로 디스패치한다인터럽트 핸들러는 장치를 서비스하여 인터럽트를 지운..
다음의 두 가지 복사에 대해 비교해봅시다 1. 얕은 복사 ; [:]가 없는 경우 a = [1, 2, 3, 4] b = a b[1] = 10 2. 깊은 복사 ; [:]가 있는 경우 a = [1, 2, 3, 4] b = a[:] b[1] = 10 3. 차이 얕은 복사는 주어진 변수가 동일한 객체를 참조하도록 함 깊은 복사는 주어진 변수가 동일한 내용의 다른 객체를 참조하도록 함 4. 결과 위의 코드들을 살펴보면 얕은 복사의 경우, b는 a와 동일한 객체를 참조합니다 따라서, b[1] = 10 수행 후, 변수 a를 조회하면 다음과 같습니다 변수 b를 조회하면 같은 결과를 나타냅니다 [1, 10, 3, 4] 깊은 복사의 경우, b는 a와 다른 객체를 참조합니다 따라서, b[1] = 10 수행 후, 변수 a를 조..
1. 상황 컨트롤러에서 @RequestParam으로 값을 받으려고 한다 2. 에러 메세지 3. 에러 원인 위 에러 메세지에 나와있듯이, "name"이라는 이름의 @RequestParam을 안넘겨주어서 에러가 발생했다 4. 해결 방법 4-1. 옵션 추가 다음과 같이 옵션을 required = false로 준다 이렇게 하면 해당 파라미터를 필수값으로 요구하지 않는다! required의 default값은 아래와 같이 true이다 파라미터를 주지 않으면 null이 페이지로 반환된다 아래는 해당 페이지를 열었을 때, name 파라미터를 출력하는 모습이다 다음은 name 파라미터를 넘기는 여러 url의 형태이다 빈 값으로 페이지에 출력되는 모습을 확인할 수 있다 다음은 name 파리미터를 정상적으로 넘겼을 때, 페..
1. 상황 html을 변경했을 때, 서버를 계속 재시작하면 컴파일하는 시간을 기다려야하는 번거로움이 발생한다 특히, html이 자주 변경되고 있거나 html 변경 내역만 빨리 확인하고 싶다 2. 해결 방법 build.gradle에 다음의 dependencies를 추가한다 Build - Recompile .. 으로 html 변경 내역을 빠르게 확인해볼 수 있다 또는 Ctrl + Shift + F9 단축키를 이용하자!
1. 상황 build.gradle -> dependencies를 다음과 같이하여 프로젝트를 빌드하고, main 메서드를 실행했다 2. 에러 메세지 3. 에러 원인 dependencies에 Spring JPA가 추가된 상태에서, application.properties에 DB정보를 써주지 않은 것이 원인이었다! 4. 해결 방법 4-1. 임시 방편으로 dependencies 주석 처리 build.gradle -> dependencies에 추가된 Spring JPA가 DB정보를 요구하기 때문에, 이 부분을 주석 처리한다 4-2. applicaion.properties에 DB정보 입력 여기서는 MySQL을 사용했다 # DataSource spring.datasource.url=jdbc:mysql://localh..
1. 상황 프로젝트를 빌드하고, main 메서드 실행했더니 다음과 같은 오류가 발생했다 2. 에러 메세지 3. 에러 원인 IntelliJ로 실행한 프로젝트 폴더(build.gradle이 있는 폴더)의 경로 중에 "한글로 된 폴더"가 있던 것이 원인이었습니다 4. 해결 방법 프로젝트 폴더가 있는 경로를 모두 "영어"로 변경하였습니다 (드라이브가 시작점이므로, '내 PC'는 신경쓰시지 않아도 됩니다) 저는 D 드라이브로 옮겨 모든 경로를 "영어"로 하였습니다 이후 프로젝트를 다시 빌드하고, main 메서드를 실행했더니, 정상적으로 돌아가는 것을 확인했습니다!
각 테이블의 PK를 '테이블명+RId'로 하여 유니크하면서 비즈니스와 관계가 없도록 잡을 예정 Member 특정 Association에 무조건 소속되어야 하므로, AssociationRId를 외래키로 갖는다 Assocation과 다대일 관계 Association 비즈니스의 핵심 주체 Orders와 Member, Kiosk를 관리 Orders, Member, Kiosk와 모두 일대다 관계 Seller와 직접적으로 결제관계에 있으나, 결제 데이터는 외부로부터 API로 전달받아 사용할 예정 Kiosk Association이 관리하는 대상 Association과 다대일 관계 Orders와 일대다 관계 각각 다른 곳에 위치해있는 키오스크에 대한 테이블 Delivery 배달 주소, 배달 상태에 대한 정보를 담고있는..
단체 단체가 판매자에게 결제 Q. 결제 정보는 누가 관리? 단체에 소속된 회원에게 상품 구매 티켓 부여 단체가 각 키오스크에 물품 주문 및 재고 관리 Q. 단체가 재고 관리할 수 있는 능력 or 여유 존재하는가? A1. 재고 관리가 단체에게 부담이 될 가능성이 있음 A2. 재고를 최대한 예측하여 소모되는 비용이 없도록 하는게 좋음 Q. 회원의 각 상품에 대한 구매 수요 예측 가능? Q. 회원이 상품 선택 가능? 회원 단체로부터 상품 주문이 가능한 티켓을 부여받음 부여된 티켓을 소모하여 상품 주문 키오스크 단체에 의해 재고가 관리됨 판매자가 만든 상품을 키오스크에 전달 Q. 상품을 판매자로부터 키오스크에 배달은 누가하는지? 회원이 키오스크에 보관된 상품 수령 회원 정보를 키오스크에서 확인 필요[QR코드] ..