Stay Hungry Stay Foolish

전체 글 430

[스프링 부트] 2. 게시판 만들기 프로젝트 생성

01. 프로젝트 생성 → 링크를 클릭하면 spring initializr로 이동한다. https://start.spring.io 인텔리제이에서도 프로젝트를 생성할 수 있지만, 그보다 더 편하게 웹에서 생성할 수 있는 spring initializr라는 것을 통해서 프로젝트를 새로 생성한다. 아래와 같이 설정을 해준다. • 관리 툴 : Gradle - Groovy (Gradle : 빌드 도구) • 언어 : Java • 스프링 부트 버전 : 3.1.0 (최신버전) (SNAPSHOT은 개발하고 있는 버전이기 때문에 선택X) • 프로젝트 이름 : Traveling.Webproject • 자바 버전 : 17 (스프링 부트 버전 3.0.X 이상을 사용하고자 한다면 자바 17을 선택해야 한다.) • Dependenc..

[스프링 부트] 게시판 만들기 개발 환경 세팅

게시판 만들기 참고 영상 - https://www.youtube.com/watch?v=frI5CoZe-vE&list=PLZzruF3-_clsWF2aULPsUPomgolJ-idGJ&index=1 01. IntelliJ(인텔리제이) 다운로드 최고의 Java 및 Kotlin IDE인 IntelliJ IDEA를 다운로드하세요 www.jetbrains.com 위의 링크를 클릭하면 다운로드 페이지로 이동합니다. 다운로드 페이지에 가면 Ultimate 버전(유료)과 Community Edition 버전(무료)이 있다. Community 버전으로 설치한다. 옵션 선택 설치 되었으면 실행해주고 옵션에서 아래와 같이 선택한다. 그리고 계속 Next를 눌러주면 설치가 완료된다. 02. MariaDB 다운로드 Download..

[스프링 프레임워크] 기본 개념 정리 1

스프링 프레임워크 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링이라고도 한다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 프레임워크 기반 기술로서 쓰이고 있다. 인터페이스(Interface) 추상 메소드만을 가질 수 있고, 구현 메서드는 가질 수 없는 일종의 추상클래스이다. ※ 추상 메소드란 선언은 되어 있으나 코드가 구현되어 있지 않은 메소드이다. abstract 키워드를 선언하는 선언부만 존재하고, 구현부는 작성하지 않고 사용한다. 작성되어 있지 않은 구현부는 자식클래스에서 오버라이딩(Overriding)하여 사용한다. 인터페이스의 역할 - 객체를 어떻게 구성해야 하는지 정리한 설..

자바/스프링 2023.10.18

[파이썬을 파이썬답게] Part 06. Itertools / Collections 모듈 (Programmers)

🗒 강의노트 🗒 곱집합 (Cartesian product) 구하기 보통 곱집합을 구할 때 반복문을 이용해 두 iterable의 원소를 하나씩 곱해간다. 파이썬에서는 itertools.product를 이용하면, for문을 사용하지 않고도 곱집합을 구할 수 있다. import itertools iterable1 ='ABCD' iterable2 = 'xy' print(list(itertools.product(iterable1, iterable2))) ☐ 문제 1 2차원 리스트를 1차원 리스트로 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열을 담은..

[파이썬을 파이썬답게] Part 05. Sequence Types 다루기 (Programmers)

☐ 문제 1 sequence 멤버를 하나로 이어붙이기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 리스트 mylist를 입력받아, 이 리스트의 원소를 모두 이어붙인 문자열을 리턴하는 함수, solution을 만들어주세요. 예를 들어 mylist가 ['1', '100', '33'] 인 경우, solution 함수는 '110033'을 리턴하면 됩니다. 제한 조건 mylist의 길이는 100 이하인 자연수입니다. mylist의 원소의 길이는 100 이하인 자연수입니다. ☑ Solution def solution(mylist): return ''.joi..

[파이썬을 파이썬답게] Part 04. Iterable 다루기 (Programmers)

🗒 강의노트 🗒 sort() : 리스트의 원소를 정렬하는 함수로, 원본의 멤버 순서를 변경한다. 따라서 원본의 순서는 변경하지 않고, 정렬된 값을 구하려면 sort 함수를 사용할 수 없다. sorted() : 매개변수로 들어온 iterable한 데이터를 새로운 정렬된 리스트로 만들어서 반환해 주는 함수다. sort 예시 list1 = [3, 2, 5, 1] list2 = [i for i in list1] # 또는 copy.deepcopy를 사용 list2.sort() sorted 예시 list1 = [3, 2, 5, 1] list2 = sorted(list1) ☐ 문제 1 [ 2차원 리스트 뒤집기 ] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 ..

[파이썬을 파이썬답게] Part 03. Str 다루기 (Programmers)

☐ 문제 1 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 s와 자연수 n이 입력으로 주어집니다. 문자열 s를 좌측 / 가운데 / 우측 정렬한 길이 n인 문자열을 한 줄씩 프린트해보세요. 제한 조건 s의 길이는 n보다 작습니다. (n - s의 길이)는 짝수입니다. s는 알파벳과 숫자로만 이루어져 있으며, 공백 문자가 포함되어있지 않습니다. 입출력 예 ✔ Feedback ✔ s, n = input().strip().split(' ') n = int(n) print(s.ljust(n)) print(s.center(n)) print(s.rjust(n))..

[파이썬을 파이썬답게] Part 02. 정수 다루기 (Programmers)

☐ 문제 1 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 숫자 a, b가 주어졌을 때 a를 b로 나눈 몫과 a를 b로 나눈 나머지를 공백으로 구분해 출력해보세요. 제한 조건 a와 b는 자연수입니다. 입출력 예 입력 예시 출력 예시 5 3 1 2 ☑ Solution a, b = map(int, input().strip().split(' ')) print(str(int(a/b))+ " " + str(int(a%b))) 몫을 구하는 과정에서 //연산자가 있다는 걸 잊어먹고 번거로운 짓을 했다. 다음은 다시 고친 코드다. a, b = map(int, input..

[파이썬을 파이썬답게] Part 01. Python 꿀팁 (Programmers)

☐ 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정수를 담은 이차원 리스트, mylist 가 solution 함수의 파라미터로 주어집니다. mylist에 들은 각 원소의 길이를 담은 리스트를 리턴하도록 solution 함수를 작성해주세요. ☐ 제한 조건 mylist의 길이는 100 이하인 자연수입니다. mylist 각 원소의 길이는 100 이하인 자연수입니다. ☐ 입출력 예 ☑ Solution def solution(mylist): answer = [] for i in range(len(mylist)): answer.append(len(mylist..

[OS] 11. 분산 처리 시스템

(1) 개요 데이터 처리장치 및 DB가 지역적으로 분산돼 있으면서 정보교환을 위해 네트워크로 상호 결합된 시스템이다. 분산 노드는 기능을 노드 별로 분담하여 수행하고, 이들이 네트워크로 연결되어 중앙의 대형 컴퓨터보다 많은 일을 효율적으로 처리할 수 있다. 특징 사용자에게 할당될 수 있는 자원은 각 노드에 분산될 수 있고, 이들은 메시지를 주고 받으면서 정보를 교환한다. 노드들은 각기 어느 정도의 자율성(autonomy)을 가진다. 사용자는 특정 자원의 물리적 위치를 몰라도 그 자원을 사용할 수 있어야 한다. 시스템 전체의 정책을 결정하는 통합적인 제어 기능이 있어야 한다. 개발 이유 인터넷이 개발되기 전에 개발된 것으로 오래전에 나왔다. 1. Resource Sharing 서로 다른 기능 및 자원을 가..

운영체제 2023.10.16

[OS] 10. 다중 처리 시스템

(1) 개요 복수 개의 프로세서(CPU)를 두어 동시에 여러 작업을 수행할 수 있도록 구성된 컴퓨터 시스템이다. 단일 시스템 내에 적은 비용과 작은 부피로 다수의 프로세서를 장착하고 이들을 연결시켜 다중 프로세서 시스템을 구축한다. 동시에 프로그램을 수행할 수 있는 프로세서를 2개 이상 두고 각각 그 업무를 분담해 처리 가능하다. 많은 추가 비용 없이도 기존 시스템의 계산 능력이 향상되고, 높은 Availability과 높은 Reliability가 보장되도록 구성되어야 한다. 구조 Loosely-Coupled Tightly-Coupled 각 프로세서들이 독립적으로 운영(각자 OS 유지) 하나의 OS가 시스템 전체 자원을 관리 각 프로세서들이 자신의 메모리 영역을 별도로 가짐 모든 프로세서들이 하나의 공유..

운영체제 2023.10.16

[OS] 09. 정보 보호 및 보안

(1) 보호의 개요 OS 컴퓨터 시스테 보안의 기본적인 제공자 역할을 한다. 메모리 보호, 파일 보호, 접근 제어, 사용자 인증 등을 포함하고 있다. Protection 대상 객체 Memory 공유 및 재사용이 가능한 I/O 장치 공유 가능한 프로그램 및 서브 프로그램 공유 데이터 Protection 컴퓨터시스템에 정의된 자원에 대하여 프로그램, 프로세스 또는 사용자의 접근을 제어하는 기법이다. Security 시스템과 그 시스템의 자료들이 결함 없이 보전된다는 것을 의미하는 일종의 신뢰도이다. 보호의 개념보다 광범위한 주제로 생각될 수 있다. (2) 보호의 영역 컴퓨터 시스템은 하드웨어 객체와 소프트웨어 객체들의 집합으로 OS가 보호해야 할 자원들이다. 하드웨어 객체(자원) : CPU, MEMORY, ..

운영체제 2023.10.16

[OS] 08. 교착상태 (Deadlock)

(1) 개요 컴퓨터 시스템은 한정된 수의 자원(resource)으로 구성된다. ✔ 교착상태 정의 어떤 프로세스가 수행하려고 특정한 자원을 위하여 무한정 기다려도 도저히 해결할 수 없는 상태이다. 하나 또는 그 이상의 프로세스가 발생되지 않는 어떤 특정한 사건(event)을 기다리고 있는 상태이다. 교착상태는 컴퓨터 시스템의 효율을 급격히 감소시키는 문제점이 있다. ✔ 교착상태 모델 교착상태 예시 서로 강의 반대방향으로 향하는 두 사람이 징검다리를 건너면서 같은 돌을 디디려 할 때 발생하는 문제가 발생하는데 이를 교착상태라고 한다. 해결방법 : 프로토콜(규약)을 이용하여 해결해야 한다. 반대편에서 강을 건너는 사람의 유무를 확인해야 한다. 두 사람이 동시에 출발해도 교착상태가 발생하고, 두 사람이 모두 기..

운영체제 2023.10.16

[OS] 07. 프로세스 간 동기화 및 통신

(1) 개요 Concurrent Processes (병행 프로세스) 두 개 이상의 프로세스들이 동시에 수행됨을 의미한다. 독립적으로 작업이 수행되며, 다른 프로세스와 협력하여 기능 수행도 가능하다. 협력 수행 시에 프로세스 간의 *동기화 또는 통신이 필요하다. 공유 자원을 가지고 수행한다. 병행 프로세스 처리는 제한된 자원을 공유하기 위해 *상호작용이 필요하다. 상호 작용하는 프로세스들을 동기화하지 않으면 문제가 발생할 수 있다. Deadlock 문제, Critical Section 문제, 결과를 예측할 수 없는 상황 등이 발생할 수 있다. *동기화 : 협력하는 프로세스 간에 실행 순서가 필요하다. ex)입금이 끝나야 출금이 수행되어야 한다. *상호작용 : 제한된 자원을 공유하기 위함이며, 상호작용하는 ..

운영체제 2023.10.16