전체 글

웹 개발 꿈나무
· Frontend
React로 파일 업로드 하는 법을 검색해보면input 태그와 label태그를 활용해서 하는 코드가 많이 나온다.나는 이미 코드에 커스텀해둔 버튼이 있어서, 해당 태그를 label로 감싸거나 해당 태그 안쪽에 label을 넣든 뭘해도 작동하지 않았다. 그래서 onChange로 input태그 ref에 접근하여 파일 업로드 하는 방식으로 구현을 했다.이때 react로만 개발하면 useRef에 타입지정을 다로 하지 않아도 잘 실행이 되나,나는 프로젝트에서 typescript를 쓰고있기 때문에 타입을 지정해주지 않으면 타입 에러가 났고,아래 코드로 해결했다. 코드import { useRef } from "react";//구현해둔 Button ui를 누르면 input type=file이 클릭돼서(.click())..
· Backend
인프런 김영한 스프링 입문섹션 6. 스프링 DB 접근 기술- 스프링 통합 테스트 Test도 실제 DB까지 연결하여 동작하는 통합 테스트를 할 예정. 이전에 했던 테스트들은 스프링과 관련이 없고, 순수 자바 코드만을 가지고 했었음.현재는 순수 자바 코드만으로는 테스트를 할 수 없음 -> DB 커넥션 정보도 스프링 부트가 가지고 있기 때문에.-> 테스트를 Spring 과 엮어서 해볼 것임. 현재 'MemberServiceTest'는 Java JVM안에서 끝남.    1. 'MemberServiceTest' 파일을 복사하여 같은 위치에 'MemberServiceIntegrationTest'라는 파일명으로 붙여넣기. 2. MemoryMemberRepository를 memberRepository로 수정하고, me..
· 알고리즘
문제https://www.acmicpc.net/problem/2211 풀이1. 1번 컴퓨터에서 각각의 컴퓨터까지 다익스트라를 이용해 최단 경로 구하기-> 이 부분에서 처음에 문제를 읽고 '경루의 개수가 최소여야한다'는 말 때문에 헷갈렸으나, 원래 연결된 경로에서의 최소 시간 보다 크면 안된다는 말, 즉 최소 cost를 그대로 유지해야 한다는 말이 추가로 있기 때문에, 다익스트라로 최소 비용이 드는 루트들만 남기면 되는거였다.2. 이때 1번 컴퓨터에서 각 노드까지의 루트를 저장해둔다.-> 2차원 배열 route를 사용하여  저장해줬다.3. 2에서 저장해둔 루트를 중복 없이 출력한다.-> route 배열을 2중 for문으로 돌며 중복을 없애기 위해 pair자료형의 set인 finalRoute에 넣어줬다. 코..
· 알고리즘
문제https://www.acmicpc.net/problem/14938 풀이1. 하나의 정점을 출발지로 두고 다익스트라 알고리즘으로 모든 정점까지의 최단 거리 값을 구한다.(cost가 모두 양수이고 각 정점까지의 최단거리를 구하면 되므로 다익스트라 사용)2. 최단거리가 예은이의 수색 범위 이하에 있는 모든 정점의 item값의 합을 구한다.3. 출발지를 1~n까지 모두 설정하여 2를 구하고 최대값을 출력한다. 코드#include#include #include #define INF 1e9using namespace std;int n, range, r, answer = 0;vector> graph[101];int item[101];// 출발점이 departure일 때 조건을 만족하는 item값의 합을 출력in..
· 알고리즘
문제 https://www.acmicpc.net/problem/11779   풀이cost가 모두 양수이며, A에서 B 정점으로 가는 최소비용을 구하는 문제이므로 다익스트라 알고리즘으로 풀었다.다른 다익스트라 문제와는 달리, 어떤 정점들을 거쳐 갔는지 루트를 출력해야 했다.  코드 1처음엔 priority queue의 top에 접근 할 때마다 출력해봤는데 당연히 틀렸음.  코드 2그래서 route를 2차원 벡터로 만들어route[n] = { n까지 가는데 거쳐간 정점들 } 이런식으로 저장했다.#include #include #include #define INF 1e9using namespace std;int n, m, departure, arrival;vector> graph[1001];int dist[1..
· Backend
인프런 김영한 스프링 입문섹션 6. 스프링 DB 접근 기술- 순수 JDBC 이번 시간에는 애플리케이션에서 DB에 연동하여 메모리가 아닌 DB에 쿼리를 날리는 것을 해볼 것임.그 중에서도 가장 오래 된, 20년 전 방식.(편하게 듣고 필요할 때 찾아보면 됨, 어떤 방식으로 발전 되어왔는지 알아보기 위한 것) 1. build.gradle > dependencies에 아래 코드 추가 후 우측 상단의 코끼리 아이콘 클릭implementation 'org.springframework.boot:spring-boot-starter-jdbc'runtimeOnly 'com.h2database:h2'spring-boot-starter-jdbc : 자바는 기본적으로 DB와 붙으려면 jdbc 드라이브가 꼭 필요함.runtim..
· Backend
인프런 김영한 스프링 입문섹션 6. 스프링 DB 접근 기술- H2 데이터베이스 설치 지금까지 해온 것은 메모리에 정보를 다 저장해왔던 것 -> 서버가 내려가면 회원 데이터들 모두 사라짐.실무에선 모두 DB에 데이터를 저장함.1. 가볍고 심플한 H2 DB 설치 해볼것.2. DB 설치 되어있으므로 애플리케이션 서버와 DB를 연결할 것   -> 이 연결 시 필요한 것이 JDBC 기술, 20년 전 개발자들이 했던 것 처럼 순수 JDBC로만 개발해볼 것.3. 순수 JDBC는 복잡하기에 스프링이 JDBC 탬플릿을 제공, 이를 이용해 애플리케이션에서 DB로 SQL을 편리하게 날릴 수 있음4. 3보다 더 나아가 SQL 조차도 개발자들이 직접 짜는게 아니라, SQL의 등록 수정 삭제 등 쿼리를 모두 날려줌  -> 'JP..
입력값 1> n; for(int i = 1 ; i n) break; v.push_back(squareNumber); } if(v.size() == 0){ cout
rocher71
페레로