Java 프로그래밍 기초
·
백엔드/spring
이 글은 알파코에서 진행 중인 [신한투자증권] 프로디지털아카데미 6기 과정 중 백엔드 과목의 김송아 강사님의 강의를 기반으로 작성되었습니다 MVC란?controller비즈니스 로직을 처리해야되는 부분을 구현해둔 곳model과 view 사이 매개체model예를들어 회원 과 같이 서비스에서 쓰는 객체의 요소를 정리해둔 것?데이터와 관련된 연관 처리/ 연산view화면에 나오는 부분들을 처리하는 곳롸면 사용자와 가까운 위치 GIT이란?내 컴퓨터 버전 관리 프로그램깃허브랑 소통하는 역할 github공용 컴퓨터에서 버전 관리 프로그램브랜치관리가 중요협업할 때 쓸 수 있는 명령어?진짜 회사에서는? 다른 시스템을 사내에 구축해서 씀 빌드란?소스코드를 실행할 수 있게 하는 모든 프로세스인터프리트(동시통역): 코드..
첫 페어 프로그래밍 회고
·
프로디지털아카데미
오늘 처음으로 페어프로그래밍을 해봤다.생각보다 soyou 가 내가 하란대로 안해줬다,,,,그래서 하면서 더 명령을 자세하게 해줬다. 근데 내가 생각하는걸 누가 대신 입력해주니까 편하지만 한번에 이해를 못해서 쉽고도 어려운 거 같다.그리고 약간 AI 프롬프팅 하는 기분이 들었다. 최대한 자세하게 설명해야 좋은 결과가 빨리 나오는 것 같다. 마지막 사진은 나한테 명령을 내리던 soyou 의 인성 공론화 사진이다.
[프디아] 금융 프로젝트 회고
·
프로디지털아카데미
이 글은 알파코에서 진행 중인 [신한투자증권] 프로디지털아카데미의 과정에서 신윤수 강사님과 진행한 프로젝트를 기반으로 작성되었습니다 중간 프로젝트를 했던 내용들을 회고해보려고 한다.먼저 가장 어려웠던 부분은 주제를 정하는 부분이였다. 뻔하지 않으면서도 우리가 구현할 수 있는 프로젝트 주제를 찾다보니 기획에도 시간을 꽤 소요하게 됐다. 그리고 두번째로 가장 어려웠던 부분은 내가 담당한 테스트를 통해 ETF를 추천해주는 기능인데이 부분에서 ETF를 개인화된 점수로 내는 부분이 가장 어려웠다. 이 로직을 정해놓고 유의미한 결과가 산출이 안돼서 엎고 다시한게 10번을 넘는 것같다.. 지표를 넣었다가 뺐다가 정규화했다가 로그화했다가 .. 많은 시행착오 끝에 그래도 점수가 유의미하게 나온다는 얘기를 들..
[백준]10986번 나머지 합 python
·
코딩테스트/백준
이 문제는 수학적인 규칙을 찾는게 어려웠던 문제 이다. 규칙을 찾고 나면 코드는 굉장히 간단해서 살짝 허무할 정도다...ㅎ 일단 순서대로 누적합을 구해본다 1 2 3 1 2 의 누적합은 1 3 6 7 9 가 된다 이때 문제를 풀기 위해 가장 중요한 규칙은 M으로 나눈 나머지가 같은 누적합 A, B가 있을 때 A~B까지의 구간의 누적합은 M으로 나누어 떨어진다. 정리하자면 위와 같다 그래서 이를 토대로 각 나머지의 경우의 수를 구하고예를 들어, M이 3이라면 나머지가 0인 경우의 수 중 2개를 고르는 조합의 수, 1인 경우의 수 중 2개를 고르는 조합의 수, 2인 경우의 수 중 2개를 고르는 조합의 수를 모두 더해주면 된다. 정답 코드n,m = map(int,input().split())arr..
[github] 협업시 발생할 수 있는 git pull 충돌 해결하기
·
github
미니 프로젝트를 진행하면서 github로 진행을 했는데develop 브랜치에서 pull 해오지 않고 commit을 해버리면서 병합충돌이 발생했다. 충돌이 발생한 이유를 순서에 따라 정리해보자면 🔍 병합 충돌이 발생한 이유feat/result 브랜치에서 작업 중develop 브랜치에서 변경된 내용이 있었음그런데 feat/result에서 작업을 마친 후, develop을 먼저 pull 하지 않고 push를 시도함나중에 develop을 pull 하려 하면서 두 브랜치 간 공통 조상 이후로 변경된 내용이 서로 달라 충돌 발생 이렇다..... push를 하기전에 develop 브랜치에 변경사항이 있었기 때문에 pull 먼저 해왔어야됐는데 깜빡하고 내 브랜치에서 push 부터 해버린것이다. 이때 다행히도 우리팀..
Cors 에러 해결하기 (feat. 서버에서 해결하는 방법)
·
백엔드/node.js
실습을 진행하면서 next.js 로 클라이언트를 구성하고 클라이언트에서 express에서 구현해놓은 API를 요청하도록 해주는 작업을 진행하였다. 그리고 마주한 CORS 에러... 일단 이걸 해결하기 위해서는 CORS에러가 뭔지 알아야한다 CORS 에러란?다른 출처(도메인/포트)의 리소스를 요청할 때 브라우저가 막는 보안 정책 지금은 둘다 로컬인데 이게 왜 발생하느냐 물어본다면 포트번호만 달라도 출처가 다르다고 생각하기 때문이다. 이 에러를 방지하기 위해서는 서버에서 CORS 설정으로 요청을 허락해주도록 수정해주어야한다. 일단 express 프로젝트에서 cors 패키지를 설치해준다 npm install cors 그리고 express 서버를 구축한 프로젝트 내의 app.js 파일에서 아래와 같은 코드를 ..
[백준] 14890번 경사로
·
코딩테스트/백준
문제 이 문제는 사실 문제를 이해하는게 가장 어려웠던 문제였던거 같다 조건이 많고 문제가 한번에 이해되지 않아서 애를 먹었다.. 경사로는 크게 두가지 종류가 있다 내려가는 경사로가 될 조건(1) 현재 좌표가 이전 좌표보다 1 낮다.(2) 현재좌표부터 L개의 좌표의 높이가 같다.(3) 현재 좌표부터 L개의 좌표에 올라가는 경사로가 설치되어 있지 않아야한다 올라가는 경사로가 될 조건 (1) 현재 좌표가 이전 좌표보다 1 낮다.(2) 이번좌표부터 L개의 좌표의 높이가 같다.(3) 이번 좌표부터 L개의 좌표에 올라가는 경사로가 설치되어 있지 않아야한다 이를 바탕으로 구현을 하게 되면 아래와 같은 코드가 나온다 정답코드 #높이차가 1이고 그러한 칸의 길이가 L의 배수일때 1 높일 수 있음# n1: ..
JavaScript에 대하여 기본 문법 및 개념 정리
·
프로디지털아카데미/JavaScript
JavaScript란?동적인 DOM을 위해 개발 된 것. 웹 브라우저 내에서 주로 사용되지만 최근 node.js같은 런타임 환경과 같이 서버 프로그래밍에도 사용되고 있음특징: 단순하고 간단, 방대한 라이브러리, 플랫폼 독립적인 오픈소스nvm이란?여러버전의 node.js 를 설치할 수 있도록 해주는 도구Node.jsJavaScript 런타임 환경브라우저 환경이랑은 이용할 수 있는 리소스에 차이가 있음*런타임: 특정 언어로 만든 프로그램들을 실행할 수 있는 환경NPMJS 오픈소스 라이브러리 생태계변수자료형var - 옛날 문법let - 변수const - 값을 바꿀 수 없을 때 사용연산자자바 스크립트에서는 == / ! = 은 데이터 타입 반영 안해서 비교형 고려해서 비교하려면 === / ! ==Closure특정..
[백준] 1238 파티 -python 파이썬
·
코딩테스트/백준
문제 처음 이 문제를 접했을 때 한 정점에서 각 정점까지의 최단거리를 구하는 다익스트라 알고리즘을 써야겠다. 라고 생각을 했는데 문제는이 문제에서 물어보는 것은 왕복 거리라는 거다. 그래서 여기서 구해줘야하는 것은 1. i번 정점 -> x정점 까지의 최단 거리2. x 정점 -> i 번 정점까지 최단 거리 이 둘을 합한 값이 최대인 값을 구해주면 된다. 그러기 위해서는 다익스트라 알고리즘을 모든 정점을 시작 노드로 주고 구해주면 된다. 그리고 1번 + 2번의 값을 정해서 최대값을 찾아주면된다. 정답 코드import heapqn, m, x = map(int,input().split())graph = [[] for _ in range(n+1)]for _ in range(m): s,e,t = ma..
[백준]2252번 줄세우기 - python (위상정렬)
·
코딩테스트/백준
문제 이 문제를 풀기 위해서는 먼저 위상정렬이라는 개념을 알아햐한다 위상정렬이란?위상 정렬(Topology Sort)이란 방향 그래프의 모든 노드를 방향성을 모두 지키며 순서대로 나열하는 것을 의미합니다. 진입 차수(Indegree) : 특정한 노드로 들어오는 간선의 개수진출 차수(Outdegree) : 특정한 노드에서 나가는 간선의 개수 동작과정은1. 진입차수가 0인 모든 노드를 큐에 넣고2. 큐가빌 때까지 다음의 과정을 반복한다. 1. 큐에서 원소를 꺼내고 해당 노드에서 나가는 간선을 그래프에서 제거한다. 2. 새롭게 진입차수가 0이된 노드를 큐에 넣는다. 이렇게 되면 모든 노드의 방향성을 지켜가면서 순서대로 나열 할 수 있게 된다. 이때 시간 복잡도는 모든 노드를 확인하며 해당 노드와..