본문 바로가기

분류 전체보기

(39)
[개발지식] MSA(Micro Service Architecture)란? MSA 개념에 대해 간단하게 정리를 합니다. MSA(Micro Service Architecture)란? Micro Service Architecture(이하 MSA)란 한 웹서버 내에서 서로 다른 환경에서 구동되는 웹 어플리케이션 서버(WAS)가 혼재되어 구성되어있는 서버 아키텍쳐를 의미한다. MSA가 왜 각광받고 있는지를 이해하기 위해서는 그 이전에 개발환경을 살펴볼 필요가 있다. Monolithic Architecture라고 부르는 구조는 MSA 이전에 주로 활용되어 오던 구조로.. 웹 애플리케이션 서비스를 동일한 개발환경 (Ex; 개발언어, 프레임워크 등..)하에서 개발하고 각 기능의 애플리케이션 별(Ex; 회원가입, 상품등록 등..) 구조를 한 묶음으로 관리하던 개발 아키텍쳐를 의미한다. 하지만..
[시행착오노트] Pandas에서 astype 사용시 Null값을 남기고 싶은 경우 이슈: astype을 통해 int로 타입 변경시 아래 에러가 발생하며 null값은 변환이 안된다. pandas.errors.IntCastingNaNError: Cannot convert non-finite values (NA or inf) to integer 해결: -1로 변경 후 integer타입 변경 그리고 replace함수 활용하여 Null 후처리 참고 : stackoverflow.com/questions/21287624/convert-pandas-column-containing-nans-to-dtype-int
[코테준비] BOJ에서 입출력에서 readline()과 input()의 EOF 입력시 차이점 이슈: 각 언어별 EOF가 발생했을 때 어떻게 다루어야 하는지에 대한 궁금증 해결: BOJ 내 Q&A의 설명은 다음과 같다. 이 문제의 목적은 문자열을 올바르게 입력받고 파일의 끝(EOF)을 올바르게 판단하는 법을 연습하는 것입니다. 총 몇 줄이 주어진다 등의 정보는 절대 입력으로 주지 않습니다. 또한 단순히 키보드로 입력 내용만 적고 프로그램이 종료되지 않은 상태까지만 봐서는 EOF를 제대로 처리했는지 알 수 없습니다. 더 이상 읽을 게 없을 때 프로그램을 종료하는 법을 알아야 합니다. 그 방법은 언어마다 다르고 사용하는 함수마다 다르니, 구글에 "C언어 EOF" 와 같이 검색해서 그 방법을 알아보세요. 주로 파일 입출력으로 설명되어 있겠지만, 입력 스트림도 파일 입력이기 때문에 결국 동일합니다. 자바..
[도서] 파이썬 클린코드 (PEP8) PEP8에 기초해서 쓰여진 책이다 최근 파이썬으로 다시 일하기 시작하면서 다른 분들과 코드를 공유해야할 상황이 점점 생기고 있다. 지금까지야 내가 쓰고 싶은대로 써도 무방했지만 좀 더 코드의 가독성과 디자인을 신경써야할 필요성이 다가오는 것이 느껴져 (+추천을 받아) 지른 책 이제 뒤적이기 시작했지만 서적 맨 앞의 클린 코드에 대한 소개가 인상깊었다. 코드의 본질은 컴퓨터에게 일을 시킨다기보다는 다른 개발자와 소통하기 위한 것에 더 가깝다고 생각한다는 말을 한다. 다른 사람과 협업할 기회가 거의 없었는데 이 기회에 좀 더 클린 코드를 작성하는 습관을 만들었으면 좋겠다.
[도서] 모두의 네트워크 네트워크 내용을 봐야 한다는 필요성을 드문드문 느끼게 되는데 아무래도 알고리즘이나 자료구조등의 우선순위에 밀려 매번 봐야지봐야지만 반복했던 것 같다. 그러다가 발견한 책이 모두의 네트워크인데 초심자도 쉽게 볼 수 있도록 편집해둔 책이라 그런지 부담스럽지 않게 퇴근 후에 30분정도 읽기 딱 좋은 것 같다. 편집은 쉽게 해두었지만 내용이 아주 얕거나 하진 않은 것 같다. 딱 혼자서 앞으로 더 깊게 찾아보고 싶으면 찾아보게 해주는 선 까지는 알려줘서 머리속에 네트워크에 대한 개념은 입력을 아주 잘 해주는 것 같다. 10일에 걸쳐서 볼 수 있도록 되어있는데, 나 같은 타전공자가 네트워크를 집중적으로 보기에는 시간은 없고 알고는 싶을 때 가볍게 보기에 딱 좋은 책.
[코테준비] Java에서 BufferReader와 BufferWriter 활용 입출력 1. 언제 쓰이나? Java 교재나 자주 접하는 레퍼런스 코드들을 살펴보면 출력과 입력은 보통 System.out.println을 활용하거나 Scanner를 불러와서 인스턴스를 새로 만들어 입력받는 경우가 대부분이다. 코딩테스트 문제를 자바로 풀다보면 시간제한 초과로 안되는 경우가 존재하는데, 이 경우 BufferReader와 BufferWriter를 활용하여 문제를 해결 가능하다. Buffer를 활용한 두 메서드의 경우 조작 방법이 다소 초기에 번거로운 측면이 있지만 속도 측면에서는 훨씬 빠르다. 2. 어떻게 쓰나? import java.io.*; import java.util.*; public class Main{ public static void main (String[] args) throws I..
[통계기본] Probability/Non-Probability Sample (확률표본/비확률표본) 오늘 내용은 통계 비전공자로서 60%만 이해해도 성공이라고 생각한다. 이렇게 정리해두면 언젠가는 이해하지 않을까? 여하튼.. 시작! 1. Probability Sample (확률 표본) 만약 모집단(Population)의 데이터가 일정 확률분포를 따르는 것으로 알려져 있다면, 표본을 이 확률분포에 기반하여 추출하여야 한다. 이러한 확률 분포에 따른 샘플링이 이루어졌을 경우 이에 대한 모집단의 추정(Inference)이 가능하다. Step 1) Point Estimate를 계산 구하고자 하는 파라미터 (Parameter of interest)에 대하여 편향되지 않은 추정치를 먼저 알아낸다. 편향되지 않은 점추정값(Unbiased Point Estimate)이란 점추정치로 가능한 모든 값들에 대한 평균값을 ..
[통계기본] Sampling Distributions (표본 분포)와 Central Limit Theorem (중심극한정리) 1. 표본 분포 모집단(Population)으로 부터 많은 수의 표본집단(n)을 추출한다고 가정하여 나오는 표본샘플의 값들의 분포 추정값(Estimates) Hypothetical 이라는 점을 명심해야한다! 정말 많은 수의 표본을 추출하게 되었을 때, 추정값은 정규분포(Normal Distribution) 처럼 보이게 된다. 이에 대한 정리가 중심극한정리 2. 중심극한 정리 (CLT, Central Limit Theorem) 모집단의 평균을 m, 표준편차를 σ라고 했을 때 모집단으로 부터 추출된 표본의 크기가 충분히 크다고 가정한다면 표본으로 부터 모집단의 평균을 추정할 수 있다는 명제의 기반이 되어주는 정리 https://drhongdatanote.tistory.com/57 [개념 통계] 중심극한 정리..
[통계기본] 다변수 카테고리 데이터 시각화 - Understanding and Visualizing Data with Python 1. 변수의 갯수에 따른 용어 변수의 갯수를 나타내는 용어로 Bivariate, Univariate, Multivariate 용어가 있음 Bivariate은 변수가 2개라는 뜻으로, 대등한 변수가 2개가 있을 때 사용하는 개념 Univariate는 변수가 여러개인 것을 가리키며, 그 중에서도 독립변수가 여러개일 때를 지칭하는 개념 Multivariate는 변수가 여러개인 것을 가리키지만, 독립변수(들)에 대한 종속변수가 여러개 있을 때를 가리키는 개념 이러한 변수 종류별로, 한 눈에 데이터가 어떻게 생겼는지 이해하기 위해 시각화를 하는 여러가지 방법들이 있음 참고한 블로그 : https://blog.naver.com/anypager71/221727635687 2. 시각화의 종류 변수가 하나일 때와는 다르..
[코테준비] Python 해커랭크(HackerRank) 문제풀이 - 4 (2D Array) * 코딩인터뷰시 기업들에서 널리 활용중인 해커랭크(HackerRank)의 Python 문제 정리. 1. 문제 2차원 배열을 다루는 문제입니다. NxN로 구성되어있는 2차원 어레이에서 3x3 단위의 매트릭스 내의 숫자의 합 중 가장 큰 합을 반환하는 문제 정확히는 3x3 내의 [2,1] 위치의 벨류값과 [2,3] 위치의 벨류값을 제외한 값들의 합을 반환하는 문제입니다. 2. 정답 def hourglassSum(arr): width = len(arr[0]) - 2 length = len(arr[1]) - 2 maxSum = -9999 for i in range(0,width): for j in range(0,length): sumTemp = 0 for x in range(0,3): if x == 1: sum..