본문 바로가기

튜나 개발일기79

[DB] DB확장을 하는 두가지 방법- 스케일 아웃(scale out)과 스케일 업 (scale up) [DB] DB확장을 하는 두가지 방법- 스케일 아웃(scale out)과 스케일 업 (scale up) 서버를 운영하다보면 이용자의 증가, 서비스의 확장 등의 이유로 더 많은 용량과 성능이 더 필요하게 된다. 이때, 수평적으로 부하를 분산하는 스케일 아웃(scale out) 방식으로 확장을 할 지 아니면 해당 서버의 용량 자체를 올리는 스케일 업 (scale up) 방식으로 확장을 할지 선택해야 한다. 그렇다면 두 가지 방식이 각각 어떤 차이가 있을까? 💡 스케일 아웃 ‘스케일 아웃’이란 접속된 서버를 여러 대 추가하여 처리 능력을 향상하는 방법이다. 수평 스케일로 불리기도 한다. 예를 들어, 하나의 처리 능력을 가진 서버에 동일한 서버 6대를 더 추가하여, 총 7의 처리 능력을 만드는 것이다. 서버가 .. 2020. 7. 20.
[pandas] pd.get_dummies() : 데이터전처리/가변수 만들기 [pandas] pd.get_dummies() : 가변수 만들기 머신러닝을 할 때 기계가 이해할 수 있도록 모든 데이터를 수치로 변환해주는 전처리 작업이 필수적이다. 예를들어, 숫자가 아닌 object형의 데이터들이 있다면 (요일-월, 화, 수, 목, 금과 같은) 1️⃣ 먼저 수치형 데이터로 변환을 해주고 (0,1,2,3,...) 2️⃣ 그다음 수치화된 데이터를 가변수화하여 나타내 준다면 기계학습에 적합한 데이터의 형태로 가공된다. 그렇다면, 수치형 데이터로만 바꾸면 될텐데 왜 굳이 더미로 가변수화해야하는걸까? 왜냐하면, 수치형 데이터로만 변환을 하게 되면 서로 간의 관계성이 생기게 된다. 예를 들어, 월요일을 1, 화요일을 2, 수요일을 3이라고 단순하게 수치형 데이터로 변환하게 되면 해당 데이터들 간.. 2020. 6. 25.
[소프트웨어공학] 모듈, 결합도와 응집도- 좋은 소프트웨어 설계의 시작 [소프트웨어공학] 모듈, 결합도와 응집도- 좋은 소프트웨어 설계의 시작 1. 모듈과 모듈화 먼저 모듈화란 소프트웨어를 각 기능별로 나누는 것을 의미한다. 그리고 그 결과로 각 기능별로 분할된 것을 모듈이라고 한다. 2. 모듈에게 중요한 것은 바로, 독립성! 좋은 모듈화는 용도에 맞게 잘 구분된 기능을 가진 독립적인 모듈로 나누는 것이다. 모듈의 독립성을 판단하는 것은 결합도와 응집도가 있다. 💡 결합도란? 모듈과 모듈간의 상호 의존도! 💡 응집도란? 모듈 내부의 기능적인 집중도! 개별 모듈은 독립적으로 자신에게 주어진 기능만을 수행하고 명확한 결과값을 내 놓아야 하고 👉모듈 내부의 높은 응집도 다른 모듈에 의존성이 높아선 안된다. 👉모듈 간의 낮은 결합도 따라서, 응집도는 높을 수록, 결합도는 낮을 수록.. 2020. 6. 19.
[Python] 완전 초보를 위한 파이썬(3) : 함수 알아보기 [Python] 완전 초보를 위한 파이썬(3) : 함수 알아보기 1. 내장 함수(built-in function) - 대표적으로 len, sum, range 등이 있음 - len: 입력된 값의 길이(length)를 계산하는 함수 - sum : 입력된 값의 합을 계산하는 함수 - range : 정수를 입력받으면 리스트를 생성하는 함수 2. 사용자 정의 함수 선언 형태는 아래와 같습니다. def 함수이름(매개변수) : 함수의 내용 return 리턴값 - 정의를 위해 def 키워드 사용 (definition) - 파라미터 정의 (함수에 입력으로 전달하는 값을 의미, argument 또는 parameter라고 함) 💡 함수의 이름정의(naming)는 중요하다 : 어떤 기능을 하는 함수인지 이름을 보고 알 수 있.. 2020. 6. 2.
[Python] 완전 초보를 위한 파이썬(2) : 반복문(Loop) 알아보기 [Python] 완전 초보를 위한 파이썬(2) : 반복문(Loop) 알아보기 💡 반복문(loop)이란? 이름 그대로 반복적인 작업을 가능하게 해주는 구문입니다. 비슷한 작업이 여러 번 반복되는 것을 한 줄 한 줄 작성하지 않고, 반복문을 통해 간결하게 표현할 수 있습니다. 파이썬에서는 조건문이 참인지 거짓인지에 따라 반복을 진행하는 while문과 리스트(list)나 튜플(tuple)과 같은 컬렉션 타입의 요소들을 하나씩 가져오며 반복을 수행하는 for문이 존재합니다. 예를 들어, 1~10까지 반복하여 출력해야 하는 상황이 있다고 가정합니다. 이때, 반복문을 사용하지 않을 경우에는 아래와 같이 작성해야 할 것입니다. print(1) print(2) print(3) print(4) print(5) print.. 2020. 6. 2.
[Python] 완전 초보를 위한 파이썬(1) : 조건문 알아보기 [Python] 완전 초보를 위한 파이썬(1) : 조건문 알아보기 💡 조건문(Condition Statements)이란? 예를 들어, 가서 사과가 있다면 사과를 2개 사오라라는 문장에서는 조건은 사과가 있다면 이 될 것이며, 실행되는 결과는 사과를 2개 구입하는 것 이 될 것이고, 중학생이면 영화 요금이 5000원이고, 고등학생이면 6000원이고, 성인이면 7000원이다. 여기서는 조건은 중학생/고등학생/성인이 되고, 실행되는 결과는 각각 5000/6000/7000 원이 될 것입니다. 이런 식으로 조건문이란 조건의 결과에 따라서 실행되는 결과를 정해주는 것을 말합니다. 💡 조건문 사용하기 파이썬에서는 조건문에 if, elif, else를 사용합니다. 먼저, 조건이 하나 주어졌을 경우 if를 사용하여 아래.. 2020. 6. 2.
[Jupyter Notebook] 주피터 노트북 테마/폰트 변경하기 [Jupyter Notebook] 주피터 노트북 테마/폰트 변경하기 기본 주피터 노트북 배경과 폰트가 마음에 들지 않아 변경을 하였다. 나중에 다른 테마나 폰트로 바꾸고 싶어질 수 있을 것 같아 블로그에 정리를 해두려고 한다. 1. 먼저 anaconda prompt 를 실행한다. 2. prompt 창에서 아래 명령어를 통해 주피터 노트북의 테마를 설치한다. pip install jupyterthemes 💡 prompt창에서 실행가능한 명령어 목록들 참고 : https://github.com/dunovank/jupyter-themes/blob/master/README.md options arg default Usage help -h -- List Themes -l -- Theme Name to Instal.. 2020. 6. 1.
[Spring Security] 스프링시큐리티 시작하기 /기본세팅 [Spring Security] 스프링시큐리티 시작하기 /기본세팅 💡 스프링 시큐리티 시작하기(기본세팅) 1. dependency 추가 org.springframework.security spring-security-web 4.2.2.RELEASE org.springframework.security spring-security-config 4.2.2.RELEASE dependencies { compile 'org.springframework.security:spring-security-web:4.2.2.RELEASE' compile 'org.springframework.security:spring-security-config:4.2.2.RELEASE' } 버전은 사용하는 프로젝트에 맞게 바꿔주시면 됩니다.. 2020. 5. 15.
[DevOps]CI/CD (지속적 통합/지속적 제공) 개념과 과정/ 툴 별 장단점 비교 [DevOps]CI/CD (지속적 통합/지속적 제공) 개념과 과정/ 툴 별 장단점 비교 애플리케이션 개발은 보통 혼자 모든 기능을 개발하기보다 여러 개발자들이 동일한 애플리케이션의 각기 다른 기능을 맡아 동시에 작업하게 된다. 만약 이러한 상황에서 개발자들이 자신의 로컬환경에 작업하여 완전히 개발이 끝날 때까지 중앙 저장소로 올리지 않는다면, 개발이 종료된 후 전체 코드를 통합하고 배포하는 정말 쉽지않을 것이다. (프로젝트의 규모가 클 수록, 개발과정이 길수록, 많은 개발자들이 함께할 수록 어려움은 클 것이다.) 실제로 현대적인 애플리케이션 개발에서는 이렇게 진행하는 경우는 거의 없을 것이다. git과 같은 형상관리 툴을 사용하여 중간중간 커밋과 머지를 통해 코드를 병합하는 과정을 거칠 것이다. 그러나 .. 2020. 5. 15.
[Spring Security] 스프링시큐리티의 기본 개념과 구조 [Spring Security] 스프링시큐리티의 개념/시작하기 /기본세팅 💡 스프링시큐리티(Spring Security)란? 스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크입니다. 즉 인증(Authenticate, 누구인지?) 과 인가(Authorize, 어떤것을 할 수 있는지?)를 담당하는 프레임워크를 말합니다. 스프링 시큐리티에서는 주로 서블릿 필터(filter)와 이들로 구성된 필터체인으로의 구성된 위임모델을 사용합니다. 그리고 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안관련 로직을 작성하지 않아도 된다는 장점이 있습니다. 기본용어 접근 주체(Principal) : 보호된 리소스에 접근하는 대상.. 2020. 5. 12.