분류 전체보기 299

[2023 월간프로젝트] 01. 주식과 노션(Notion)

프로젝트 동기 2023년에는 매달 프로젝트를 1가지 정하여, 진행하고 블로그에 기록하는 것을 목표로 새롭게 세웠습니다. 그중 첫 번째인 1월의 프로젝트에 대해서 어떤 것을 하면 좋을지 고민이 많았습니다. 여러 가지 후보들이 있었지만, 그중에서 주식 데이터를 받아와서 노션에 기록하는 것으로 결정하였습니다. 뜬금없이 "왜 여기서 주식이 나와?"라고 생각하실 수도 있지만, 저는 매일 아침 유튜브로 경제 뉴스를 보면서 주요 뉴스와 주가 지수를 노션에 기록을 하는 습관을 가지고 있습니다. 하지만 기록을 할 때 좀 번거로운 부분이 있었는데, 그것은 주가 지수와 환율을 기록하는 것이었습니다. 이러한 불편함을 가지고 있는 와중에 제 친구가 제가 정리한 글을 보고 "이 지수들은 전부 네가 직접 쓰는 거야? 컴퓨터로 코드..

프로젝트 2023.01.25

[python] Binomial Expansion

https://www.codewars.com/kata/540d0fdd3b6532e5c3000b5b/train/python Codewars - Achieve mastery through coding practice and developer mentorship A coding practice website for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages! www.codewars.com 이 문제는 (ax+b)^n 식을 풀어서 적는 것입니다. 예를 들어 (x+1)^2의 경우 답은 x^2+2x+1입니다. ⭐ 처음에는..

[코딩 인터뷰]지식 기반 문제 - 스레드와 락 문제

[ 프로세스 vs 스레드 ] 프로세스와 스레드의 차이는 무엇인가? 프로세스 CPU 시간이나 메모리 등의 시스템 자원이 할당되는 독립적인 개체 각 프로세스는 별도의 주소 공간에서 실행 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근 불가능 → 접근하려면 파이프, 파일, 소켓 등을 이용해야 됨 스레드 프로세스 안에 존재하며 프로세스의 자원을 공유 별도의 레지스터와 스택을 갖지만 힙 메모리는 서로 읽고 쓸 수 있음 프로세스의 특정한 수행 경로와 같음 → 한 스레드가 프로세스 자원 변경 시 다른 스레드도 변경 결과 확인 가능 [ 문맥 전환 ] 문맥 전환에 소요되는 시간을 측정하려면 어떻게 해야 할까? 두 프로세스의 타임스탬프의 차이와 같습니다. 타임스탬프의 경우 마지막과 첫 번째 명령어의 시간을 기록해야 ..

[코딩 인터뷰]지식 기반 문제 - 스레드와 락

[ 자바의 스레드 ] 자바의 모든 스레드는 java.lang.Thread 클래스 객체에 의해 생성되고 제어됩니다. 자바에서 스레드를 구현하는 방법은 Runnable 인터페이스를 구현하는 법과 Thread 클래스를 상속받는 법으로 2가지가 있습니다. ⭐ 주 스레드(main thread) : 독립적인 응용 프로그램이 실행될 때, main() 메서드를 실행하기 위한 하나의 사용자 스레드 👀 Runnable 인터페이스를 구현하는 방법 ✔️ 구조 public interface Runnable{ void run(); } ✔️ 과정 Runnable 인터페이스를 구현하는 클래스를 만듭니다. → 이 클래스의 객체는 Runnable의 객체가 됩니다. Thread 타입의 객체를 만들 때, Thread의 생성자에 Runnab..

[코딩 인터뷰]지식 기반 문제 - 데이터베이스 문제

[ JOIN ] 서로 다른 종류의 JOIN은 어떤 것들이 있는가? 각각이 어떻게 다르고 어떤 상황에서 어떤 JOIN과 어울리는지 설명하라. 👀 INNER JOIN / 내부 조인 조건에 부합하는 데이터만 결과 집합에 포함됩니다. 👀 OUTER JOIN / 외부 조인 내부 조인의 모든 결과가 포함되고 추가로 조건에 부합하지 않는 레코드도 일부 포함합니다. ⭐ 종류 LEFT OUTER JOIN / 좌측 외부 조인 : 결과 집합에 왼쪽 테이블의 모든 레코드가 포함됩니다. RIGHT OUTER JOIN / 우측 외부 조인 : 결과 집합에 오른쪽 테이블의 모든 레코드가 포함됩니다. FULL OUTER JOIN / 완전 외부 조인 : 왼쪽과 오른쪽 테이블의 모든 레코드가 결과 집합에 포함됩니다. [ 비정규화 ] 비정..

[코딩 인터뷰]지식 기반 문제 - 데이터베이스

* Microsoft SQL 기준으로 작성하였습니다. [ 정규화 vs 비정규화 데이터베이스 ] 👀 정규화 : 중복을 최소화하도록 설계된 데이터베이스입니다. 데이터베이스에 한 번만 저장해도 된다는 장점이 있지만 상당수의 일상적 질의를 처리하기 위해 JOIN을 많이 하게 되는 단점이 있습니다. 👀 비정규화 : 읽는 시간을 최적화하도록 설계된 데이터베이스입니다. 높은 규모 확장성을 실현하기 위해 자주 사용되는 기법입니다. [ 기본 SQL 문 ] 👀 조회 /* 모든 칼럼 불러오기 */ SELECT * FROM 테이블명 /* 특정 칼럼 불러오기 */ SELECT 칼럼1, 칼럼2 FROM 테이블명 /* 상위 N개의 데이터만 불러오기 */ SELECT TOP N * FROM 테이블명 /* 중목되지 않는 데이터만 불러..

[코딩 인터뷰]지식 기반 문제 - Java 문제

[ private 생성자 ] 상속 관점에서 생성자를 private로 선언하면 어떤 효과가 있나? 생성자가 private으로 선언된 class A는 A의 private 메서드에 접근이 가능해야만 생성자를 호출할 수 있다는 것을 의미합니다. [ finally에서의 반환 ] 자바의 finally 블록은 try-catch-finally의 try 블록 안에 return 문을 넣어도 실행되는가? finally 블록은 try 블록이 종료되는 순간 실행되기 때문에 실행이 됩니다. ⭐ continue, break와 exception을 사용해도 마찬가지로 실행됩니다. 👀 finally 블록이 실행되지 않는 경우 try/catch 수행 중에 가상 머신이 종료됨 try/catch를 수행하고 있던 스레드가 죽음 [ final과..

[코딩 인터뷰]지식 기반 문제 - Java

[ 오버로딩 vs 오버라이딩 ] 👀 오버로딩 : 두 메서드가 같은 이름을 갖고 있으나 인자의 수나 자료형이 다른 경우 public double solve(Circle c){ ... } public double solve(Square s){ ... } 👀 오버라이딩 : 상위 클래스의 메서드와 이름과 용래(signature)가 같은 함수를 하위 클래스에 재정의하는 것 public abstract class Shape{ public void printMe(){ System.out.println("I am a shape."); } public abstract double computeArea(); } public class Circle extends Shape{ private double rad = 5; pub..

[python] 미국 국채 금리 확인하기(yfinance)

⭐ yfinance 간단 설명 및 설치는 이 곳에서 확인하시길 바랍니다. 미국 국채 확인하기 import yfinance as yf def solve(symbol): stock = yf.download(symbol) tmp = stock[::-1]['Close'] preday = tmp.index[1] today = tmp.index[0] print(today, preday) state = tmp[today]-tmp[preday] result = f"{round(tmp[today], 2): ,} (" + ('▼' if state < 0 else '▲') + ')' return result treasury = {'5년물': '^FVX', '10년물': '^TNX', '30년물': '^TYX'} for k,..

[python] 미국 증시 3대 지수 확인하기(yfinance)

yfinance yfinance는 야후 파이낸스(https://finance.yahoo.com/)의 주가 정보를 가져올 수 있는 함수입니다. Pandas의 Dataframe 형식으로 지원하므로 Pandas 사용에 익숙하시면 사용하시기 편합니다. yfinance 설치하기 !pip install yfinance 데이터 다운로드 import yfinance as yf stock = yf.download(symbol명) stock 데이터 정보 Date 날짜 Open 시가 High 최고가 Low 최저가 Close 종가 Adj Close 수정 종가 Volume 거래량 마지막 2개의 날짜로만 확인 import yfinance as yf def solve(symbol): stock = yf.download(symbol..

728x90