운영체제 정의 컴퓨터의 (H/W)를 관리하는 프로그램들의 집합체 ‘응용 프로그램’을 위한 기반을 제공, 컴퓨터 사용자와 H/W 사이에서 중재자 역할을 수행하는 프로그램 중재자 역할 : 운영체제 목적 대형 컴퓨터 OS : 하드웨어의 이용을 최적화하는 데 주안점을 둠 (H/W 효율성) => 최적화 해서 효율성을 높일 수 있는가? 개인용 컴퓨터(PC) OS : 복잡한 게임, 비즈니스 응용 등 중간에 위치하는 모든 응용을 지원 (개인의 사용 용이성) => 개인의 목적에 맞는 응용 자원이 중요! 휴대용 컴퓨터 OS : 사용자가 프로그램을 수행하기 위해 컴퓨터와 쉽게 인터페이스 할 수 있는 환경 제공 (사용의 편리성) => 이동성을 강조하기 위해 PC보다 제약성多 -> 용이성보다 인터체이스를 어떻게 제공하느냐?에 ..
2644번 촌수계산 https://www.acmicpc.net/problem/2644 문제 우리 나라는 가족 혹은 친척들 사이의 관계를 촌수라는 단위로 표현하는 독특한 문화를 가지고 있다. 이러한 촌수는 다음과 같은 방식으로 계산된다. 기본적으로 부모와 자식 사이를 1촌으로 정의하고 이로부터 사람들 간의 촌수를 계산한다. 예를 들면 나와 아버지, 아버지와 할아버지는 각각 1촌으로 나와 할아버지는 2촌이 되고, 아버지 형제들과 할아버지는 1촌, 나와 아버지 형제들과는 3촌이 된다. 여러 사람들에 대한 부모 자식들 간의 관계가 주어졌을 때, 주어진 두 사람의 촌수를 계산하는 프로그램을 작성하시오. 입력 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫..
2304번 창고 다각형 https://www.acmicpc.net/problem/2304 문제 N 개의 막대 기둥이 일렬로 세워져 있다. 기둥들의 폭은 모두 1 m이며 높이는 다를 수 있다. 이 기둥들을 이용하여 양철로 된 창고를 제작하려고 한다. 창고에는 모든 기둥이 들어간다. 이 창고의 지붕을 다음과 같이 만든다. 지붕은 수평 부분과 수직 부분으로 구성되며, 모두 연결되어야 한다. 지붕의 수평 부분은 반드시 어떤 기둥의 윗면과 닿아야 한다. 지붕의 수직 부분은 반드시 어떤 기둥의 옆면과 닿아야 한다. 지붕의 가장자리는 땅에 닿아야 한다. 비가 올 때 물이 고이지 않도록 지붕의 어떤 부분도 오목하게 들어간 부분이 없어야 한다. 그림 1은 창고를 옆에서 본 모습을 그린 것이다. 이 그림에서 굵은 선으로 ..
리액트 사용 이유 인스타그램 등 요즘 웹들을 보면 모바일 App 처럼 부드럽게 동작하는 웹들이 많다. 메이저 SNS들도 새로고침 없이 웹 탐색이 가능하다. 이런 사이트들은 모바일 앱과 비슷한 사용감을 가져서 Web -App이라고 부른다. 이런 Web-App을 쉽게 만들 수 있는 것이 React이다. 장점 모바일 앱으로 발행이 쉽다. 앱처럼 뛰어난 UX 그냥 웹사이트보다 비즈니스적 강점이 있다. 리액트 설치와 셋팅법 Node.js 검색 후 최신버전 설치하기 Visual Studio Code 설치하기 작업 폴더 생성 -> 에디터에서 Open Folder 눌러서 작업 폴더 오픈 리액트 프로젝트 생성 : 터미널에서 "npx create-react-app 이름" 입력 npx : 라이브러리 설치를 도와주는 명령어(..
16931번 겉넓이 구하기 https://www.acmicpc.net/problem/16931 16931번: 겉넓이 구하기 크기가 N×M인 종이가 있고, 종이는 1×1크기의 칸으로 나누어져 있다. 이 종이의 각 칸 위에 1×1×1 크기의 정육면체를 놓아 3차원 도형을 만들었다. 종이의 각 칸에 놓인 정육면체의 개수가 주어 www.acmicpc.net 문제 크기가 N×M인 종이가 있고, 종이는 1×1크기의 칸으로 나누어져 있다. 이 종이의 각 칸 위에 1×1×1 크기의 정육면체를 놓아 3차원 도형을 만들었다. 종이의 각 칸에 놓인 정육면체의 개수가 주어졌을 때, 이 도형의 겉넓이를 구하는 프로그램을 작성하시오. 위의 그림은 3×3 크기의 종이 위에 정육면체를 놓은 것이고, 겉넓이는 60이다. 입력 첫째 줄..
10826번 피보나치 수 4 https://www.acmicpc.net/problem/10826 10826번: 피보나치 수 4 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 1..
2504번 괄호의 값 https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net 문제 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X가 올바른 괄호열이면 ‘(X)’이나 ‘[X]’도 모두 올바른 괄호열이 된다. X와 Y 모두 올바른 괄호열이라면 이들을 결합한 XY도 올바른 괄호열이 된다. 예를 들어 ‘((..
스프링 컨테이너 ApplicationContext 기존 : 개발자가 AppConfig를 사용해서 직접 객체를 생성 & DI → 스프링 컨테이너 사용 @Configuration이 붙은 AppConfig를 설정(구성) 정보로 사용 : @Bean이라 적힌 메서드를 모두 호출 -> 반환된 객체를 스프링 컨테이너에 등록 스프링 빈 : @Bean이 붙은 메서드의 명을 스프링 빈의 이름으로 사용. 스프링 빈은 applicationContext.getBean() 메서드를 사용해서 찾을 수 O 스프링 컨테이너 생성 @Configuration public class AppConfig { @Bean public MemberService memberService() { //생성자 주입 return new MemberServi..
객체 지향 프로그래밍 컴퓨터 프로그램을 여러개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있음. 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용 객체지향의 특징 추상화(Abstraction) : 여러 객체들의 공통적인 특징을 도출해 내는 것, 현실 객체를 추상화해서 클래스를 구성. 캡슐화(Encapsulation) : 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것, 데이터를 직접 노출시키지 않고 메서드를 이용해 보호. 상속(Inheritance) : 상위클래스의 속성을 하위클래스가 물려받는 것 다형성(Polymorphism) : 하나의 객체가 여러 형태를 가지는 것 다형성의 실세계 비..
Spring 단어의 의미 스프링 DI 컨테이너 기술(Bean 관리 등) 스프링 프레임워크 스프링 부트, 스프링 프레임워크 등을 모두 포함한 Spring 생태계 Spring의 핵심 개념 "자바 언어 기반의 프레임워크" 객체지향 언어가 가진 강력한 특징을 살려내는 프레임워크 좋은 객체 지향 어플리케이션을 개발할 수 있게 도와주는 프레임워크 Spring 특징 자바 객체와 라이브러리들을 관리, Tomcat과 같은 Was가 내장되어 있어 자바 웹 어플리케이션을 구동할 수 있음 경량 컨테이너로 자바 객체를 직접 Spring에서 관리 : 객체의 생성및 소멸과 같은 생명주기(Life Cycle)을 관리하며, Spring 컨테이너에서 필요한 객체를 가져와서 사용 제어의 역전(IOC, Inversion Of Control..