분류 전체보기
-
스프링 프레임워크와 스프링 부트개발/Spring Boot 2023. 7. 15. 00:29
Spring Framework에 필요한 모듈들을 추가하다 보면 설정이 복잡해지는 문제를 해결하기 위해 Spring Boot가 등장했다. Spring Boot는 별도의 복잡한 설정 없이, 사용할 수 있는 프레임워크이다. 의존성 관리 스프링 프레임워크에서는 개발에 필요한 각 모듈의 의존성을 직접 설정해야 했다. 프레임워크와 호환되는 버전을 명시해야하며 연관된 다른 라이브러리의 버전까지도 고려해야했다. 스프링 부트에서는 이런 불편함을 해소하기 위해 'spring-boot-starter'라는 의존성을 제공한다. spring-boot-starter의 의존성은 여러 종류가 있고, 기능과 모듈의 호환성을 고려하여 최적의 조합을 제공한다. 아래는 많이 사용되는 spring-boot-starter 라이브러리이다. spr..
-
스프링 부트란? - IoC, DI와 AOP개발/Spring Boot 2023. 7. 15. 00:10
Spring Boot는 Spring Framework의 다양한 프로젝트 중 하나이다. 스프링 프레임워크는 자바에서 가장 많이 사용되는 프레임워크이다. 스프링은 자바 언어를 이용해 엔터프라이즈급 개발을 편리하게 만들어주는 프레임워크이다. 제어 역전 (IoC; Inversion of Control) 일반적인 자바 개발에서는 사용하려는 객체를 먼저 선언하고, 해당 객체의 의존성을 생성한 후 객체에서 제공하는 기능을 사용한다. 객체를 생성한 뒤 객체를 이용하는 작업을 개발자가 직접 제어하는 형태이다. 제어 역전은 기존 자바 개발 방식과 다르게 동작한다. 제어 역전 환경에서는 사용할 객체를 직접 생성하지 않고 객체의 생명주기 관리를 외부에 위임하는 형태이다. (스프링에서 '외부'는 스프링 컨테이너 또는 IoC 컨..
-
[백준, Python] 3052번 - 나머지개발/알고리즘 2022. 5. 13. 22:52
내장함수 Set 활용하기 set 함수는 List의 중복된 값을 하나로 만들고 출력해준다. 이를 활용하여, 문제를 풀어보자. a = [1, 2, 2, 3, 4, 5, 5, 6, 7] print(set(a)) //결과 : [1, 2, 3, 4, 5, 6, 7] 1. 입력 받기 int Type으로 10번 값을 입력받아 List로 저장하는 Variable(변수) "num_list"를 선언하자 num_list = [int(input()) for _ in range(10)] 2. 반복문 수행하기 결과 값을 저장할 List "result"를 선언하고, num_list의 요소 개수 만큼 반복문을 수행한다. numlist의 첫번째 요소 ~ 마지막 요소까지 42와 나누기 한 나머지 값을 result에 저장한다. resul..
-
[백준, Python] 2577번 - 숫자의 개수개발/알고리즘 2022. 5. 7. 22:26
정수 3개를 입력 받아주자 first = int(input()) second = int(input()) third = int(input()) first와 second, third를 곱해준 결과를 String(문자)으로 변환해준다음 List에 넣고 result라는 변수로 선언해준다. 0~9의 숫자를 number라는 이름의 리스트로 선언해준다. result = list(str(first * second * third)) number = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] for문을 통해서 result와 number의 요소에 차례대로 접근해준다. (count 함수는 찾고싶은 문자가 List안에 몇개나 들어있는지 정수로 반환해준다.) result List에 number List의 값을 차례대..
-
[백준, Python] 10871번 - X보다 작은 수개발/알고리즘 2022. 5. 6. 16:49
문제에서 입력하는 정수 두개와 여러개의 정수를 받기 위해서, map()과 list()를 사용해 입력을 받아주자 first, second = map(int, input().split()) numlist = list(map(int, input().split())) for문으로 numlist에 있는 요소들에게 접근 한 다음, if 문의 조건을 통과하는 요소들만 printlist에 추가 한다. printlist = [] for i in range(len(numlist)): if numlist[i] < second : printlist.append(numlist[i]) list인 printlist를 바로 출력하게 될 경우 [, , ,]의 형태가 그대로 출력되게 되어, 문제 제출시 오답으로 처리된다. .join을 ..
-
Python으로 REST API 구현개발/Python (파이썬) 2022. 5. 4. 15:10
Flask(플라스크)를 통해서 Python으로 API Server를 만들어보자. Flask Flask(플라스크)는 간단한 Web Server를 구현해주는 Micro Web Framework이다. Python에 Flask 가져오기 Flask 설치 pip install flask Flask를 Python에 가져오기 (import) from flask import Flask Flask로 JSON 서비스하기 #json을 서비스 해주기 위해서 jsonify도 import 해온다. from flask import Flask, jsonify result = [{'apple': 2000, 'orange': 3000}] app = Flask(__name__) @app.route('/') def json_api(): #j..
-
Argument(인자)와 Parameter(매개변수)개발/JavaScript (자바스크립트) 2022. 5. 4. 10:07
인자와 매개변수의 차이점은 뭘까? Argument(인자) let variable = functionName(a1, a2, a3 ... aN); Variable(a1, a2, a3 ... aN); 함수(Function)를 호출할 때 전달되는 실제 값을 의미한다. 단어를 그대로 직역하여 '인자'로 외우기보다는, 전달 값으로 이해하는게 도움이 되겠다. Parameter(매개변수) function functionName(para1, para2, para3 ... paraN) { } 함수의 정의부분에 나열되어 있는 Variable들을 의미한다. 예제 //Function(함수)의 Parameter(매개변수) function sum(a, b){ return a + b } //console.log 출력문 안에서 Fun..
-
Event Bubbling개발/JavaScript (자바스크립트) 2021. 8. 3. 16:28
특정 개체의 Event를 지정해 실행했을 경우에도, 상위 개체의 Event 또한 같이 실행되는 모습을 보았을 것이다. 이는 DOM 이벤트 처리 흐름과 관련이 있다. Event Bubbling (이벤트 버블링) 아래 예를 보자 HTML 코드와 JS코드가 아래와 같을 때, 브라우저 상에서 '철수'를 누르면 어떻게 될까? 철수 영희 지수 // JS 코드 const list = document.querySelector('#list'); const child = list.children; function event1() { console.log("list"); } function event2() { console.log("child"); } list.addEventListener('click', event1); ..