전체 글

칠전팔기
·Algorithm/Beakjoon
https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net - 재귀형식 완전 탐색으로 실행 -> 실패 - 메모리 제한 때문에 dp 사용해서 풀어야 함 - dp[k] = dp[k - coin] 까지밖에 생각 못함..... 해당 값을 구성하는 경우의 수도 생각해야 함 => dp[k] = dp[k: 이전 k 경우의 수] + dp[k - coin] - coin 값 종류별로 dp[k] 후보군 구한 후 max 할당 조합의 중복을 막기 위해서, 사용하는 동전 종류를 점..
·Algorithm/Beakjoon
https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net - 가장 연속된 부분이 긴 부분을 찾아서 탐색해보기 -> 너무 비효율적임 - N 크기가 크지 않으므로 완전 탐색도 괜찮을 것 같음 (연속된 알파벳이 다른 경우만 탐색하므로) - 오른쪽, 아래와 교환 후 각 알파벳에 대해 같은 수 탐색 오른쪽 교환인 경우 체크 : row 1개, col 2개 아래 교환시 체크 : row 2개, col 1개 - 한 줄 내 최대 연속 개수 체크 import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt..
Rest API Controller 생성 및 단위 테스트 [목표] ➤ 테스트 코드 작성 / 단위 테스트 실행 TDD ? Unit Test? TDD : Test-Driven-Development 테스트 코드 먼저 작성하면서 시작 (Red - Green - Refactor) Unit Test : 기능단위의 테스트 코드 작성 (TDD의 첫번째 단계) 순수한 테스트 코드 작성 행위 단위 테스트는 문제 발견이나, 추후 리팩토링 같은 수정사항 발생 시 기존 기능 올바르게 작동하는지 확인 도움 중간중간 체크함으로써 불확실성 줄여준다. (+ 시스템에 대한 문서로 사용 가능) 매번 일일히 tomcat 올려서 출력 체크하는 것도 일이니까... 결과만 도출되는 단위테스트 이용하면 빠름 프레임워크 : xUnit - 테스트 코..
[사용 교재] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 먼저 프로젝트 생성 후 clone해온 내 깃헙 레퍼지토리와 동기화 하기 이미 깃헙 레퍼지토리와 연동된 로컬 저장소를 생성하고, 거기에 프로젝트를 만든거여서 간단하게 인텔리제이 메뉴 자체에 있는 add, commit, push를 이용해 레퍼지토리에 올려줬다. commit 메시지를 적는것에 일종의 규칙이 암묵적으로 존재한다. 아무래도 협업이 필수 불가결하므로 교통 정리를 위해 정말 중요할 것 같다. https://xtring-dev.tistory.com/entry/Git-%EA%B7%9C%EC%B9%99%EC%A0%81%EC%9D%B8-Commit-%EB%A9%94%EC%84%B8%EC%A7%80%EB%A1%9C-%EA%B0%9C%EB%B0%9C..
·Java
ㄴ 매번 찾아보기 귀찮아서 적어놓는다 아마 인텔리제이 종료 과정에서 서버 연결 끊는게 제대로 안 이뤄진 상태로 재실행하니 이런 문제가 발생하는 것 같다. Web server failed to start. Port 8080 was already in use. 이런 메시지가 함께 등장한다. # 해결방법 1. Cmd창 켠 후 netstat -ano 입력 2. 8080포트 (사용중인 포트 주소)를 찾기위해 Ctrl + F로 해당 포트 사용중인 PID 복사 3. 사용중인 프로그램 kill 해주기 taskkill /pid 22396 /f netstat -ano taskkill /pid 22396 /f
·Git
자꾸 헷갈려서 한 곳에 정리해봐야겠다. cmder 설치 1. 업데이트 할 깃허브 계정과 연동시키기 (1) VScode와 cmder 연동하기 Settings 을 클릭한 후 오른쪽 상단 아이콘 클릭을 통해 setting.json을 열어준다. 이후 아래 글을 참고해서 설정했음 (*** 참고로 setting에 코드 복붙할 때 마지막에 콤마 제거해야 함!! "Cmder" , ⤺ 이거) https://inpa.tistory.com/entry/VScode-%F0%9F%92%BD-cmder-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EB%B2%95 [VScode] 💽 터미널에 cmder 사용하는법 (2022年 최신방법) VS Code에서 cmder 사용 vs code의 터미널을 칙칙한 bash나..
6. AOP 더보기 1. AOP가 필요한 상황 2. AOP 적용 1) AOP가 필요한 상황 AOP의 본격적인 이해에 앞서, 상황을 예로들어 어떤 경우에 AOP가 사용 되는지 알아보자! • 어떤 경우에 AOP를 사용하나? 모든 메서드의 호출 시간 측정 공통 관심 사항 (cross-cutting concern) vs. 핵심 관심 사항 (core concern) 회원 가입 시간, 회원 조회 시간 측정 • 회원 조회(findMembers), 가입(join) 시간 측정 추가 ( in MemberService) public Long join(Member member){ // 중복된 이름을 가진 회원은 가입 불가능 조건 long start = System.currentTimeMillis(); //로직 시작 시간 찍기..
5. 스프링 DB 접근 기술 6) 스프링 데이터 JPA 스프링 데이터 JPA: JPA의 업그레이드 버전 프레임워크. JPA 편리하게 사용하기 위한 도구에 가까움 (Repository에 구현 Class 없이 인터페이스만으로 개발 가능!) 스프링 데이터 JPA Repository에 구현 클래스 작성해줄 필요 X, 인터페이스만 있으면 된다 기본 CRUD (생성, 읽기, 갱신, 삭제) 기능도 얘가 제공해줌 단순 반복 코드 삭제 → 핵심 비즈니스 "로직" 개발에 집중 가능, 생산성 증가 어쨌든 근본은 JPA에 두고 있음 (just JPA를 편리하게 사용하기 위한 도구임) 0. 설정은 JPA와 동일하게 유지 - build.gradle / application.properties / Entity Mapping 은 동..
5. 스프링 DB 접근 기술 5) JPA JPA: 기존 반복 코드 + 기본 SQL 대신 자동으로 처리 해줌 JPA 사용 이유 JdbcTemplate 의 업그레이드 버전 ∴ 작성 코드 더 간단해짐 (직접 작성하던 SQL 상당 부분 대체) SQL, 데이터 중심 설계 → 객체 중심 설계로 전환 가능 (객체만 신경쓰기 가능) 개발 생산성 증대 (객체를 JPA에 넣으면, 중간에서 DB에 SQL날리고 Data 가져오는 것들을 JPA가 다 처리해줌) 1. 설정 추가/ 수정 1) build.gradle에 dependency 추가/수정 // implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframewor..
5. 스프링 DB 접근 기술 4) 스프링 JdbcTemplate JdbcTemplate : 가장 많이 사용하는 JDBC 데이터베이스 접근 방식. 가장 낮은 수준의 접근이며 JDBC 코어 패키지의 중심 Class임. SQL 쿼리들을 작성하면 실행해준다. 순수 JDBC와 동일한 환경설정을 해줌 >> build.gradle에서 spring-boot-starter-jdbc 유지 JDBC API에서의 반복 코드 Almost 제거 해줌. 실무에서 사용 多 SQL문은 직접 작성할 것. 1. JdbcTemplateMemberRepository 생성 (implements MemberRepository) 1) 사용하기 전 JdbcTemplate를 먼저 선언. private final JdbcTemplate jdbcTemp..
5. 스프링 DB 접근 기술 더보기 1. H2 데이터베이스 설치 2. 순수 Jdbc 3. 스프링 통합 테스트 4. 스프링 JdbcTemplate 5. JPA 6. 스프링 데이터 JPA [목표] ➤ 데이터를 영구적으로 보존하기 위해선 단순 메모리 저장은 무리가 있다. 본격적으로 DB를 설치해 저장해보며 데이터를 지켜보자! 1) H2 데이터베이스 설치 H2: 개발이나 테스트 용도의 가벼운 DB, 웹화면 제공 H2 파일을 설치 후 (아예 spring-study 폴더 안에 저장함) cmd 창을 통해 h2.bat을 bin에서 실행 시켜주면, 위와 같은 화면이 뜬다. 최초에는 데이터베이스 파일을 생성해줘야 한다. 설정을 그대로 둔 채 연결하면, 이런 화면이 뜬다. 이때 데이터 베이스가 잘 생성됐는지 확인 하려면 홈..
인프런에서 스프링 입문 강좌를 수강하며 실습하던 중, H2를 스프링과 연결하는 과정에서 발생한 오류이다.분명히 강좌에서 나온대로 따라 했는데 오류가 났고...(ㅠㅠ) 구글링을 해도 마땅한 해결 방법이 나오지 않아 더더욱 당황스러웠던 것 같다.혹시 나와 같은 문제를 겪는 사람이 있다면 도움이 될까해서 작성한다.문제 배경강의 중 순수 JDBC 챕터를 듣던 과정에서 발생한 문제이다.H2 DB를 스프링과 연결해 주기 위해 build.gradle, application.properties, SpringConfig 파일을 수정해주었고, JdbcMemberRepository를 MemberRepository의 구현체로 추가해주었다. cmd 창을 통해 h2.bat을 실행 시켰고, 이걸 통해 뜬 h2 웹 브라우저는 정상적..
mopipi
되고 싶어 개발짱