분류 전체보기

    [WIL] 230619 ~ 230625

    목표 달성 여부 ✅ 스터디 월, 수, 금 잘 진행할 것. ✅ 힘들어도 TIL 비공개라도 써 볼 것. (스프링에 대해서 요약하면 좋을 것 같다.) 이번 주 내가 한 것 1. 스프링 강의 듣기 JDBC(Java Database Connectivity) DB에 접근할 수 있도록 Java에서 제공하는 API, JDBC에 연결해야 하는 DB의 JDBC 드라이버를 제공하면 DB 연결 로직(Connection, SQL 요청, 결과 응답)을 변경할 필요 없이 DB 변경 가능. 3 Layer Architecture Controller 클라이언트의 요청을 받아 요청에 대한 로직 처리를 Service에 전달. Request 데이터가 있다면 같이 전달 Service에서 처리 완료된 결과를 클라이언트에게 응답 Service 사..

    [TIL] 피보나치 수열 구하기 - 메모이제이션

    재귀 함수를 공부해보자. 스터디에서 프로그래머스 최대공약수 최소공배수를 구하는 문제를 같이 풀었는데, 다른 사람의 풀이에 유클리드 호제법을 과, 재귀함수를 이용하여 최대공약수를 구하는 풀이가 나와있었다. 재귀함수에 대해서 발표를 해야겠다는 생각이 들어 공부해보기 시작했다. 피보나치 수열을 재귀함수를 이용해 구해보자. 재귀함수를 이용하는 대표적인 문제는 피보나치 수열을 구하는 것이 있었다. 점화식 a (n) = a (n-1) + a (n-2) 에 따라서 다음과 같이 간단하게 구할 수 있었다. public int fibonacci(int nth) { switch (nth) { case 0: return 0; case 1: return 1; } return fibonacci(nth - 1) + fibonacc..

    [TIL] 프로그래머스 lv.2 다음 큰 숫자 (비트연산자)

    문제 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다.조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수 입니다. 나의 풀이 풀이 로직 String을 매개변수로 받아 1의 개수를 세어 int로 return하는 메서드 countOneOfStr을 만든다. int..

    [TIL] 예외 되던지기(Exception re-throwing)는 언제 사용될까?

    예외 되던지기란? 예외를 처리한 후에 인위적으로 다시 발생시키는 방법 예외가 발생할 가능성이 있는 메서드에서 try-catch문을 사용해서 예외를 처리해주고 catch문에서 필요한 작업을 행한 후에 throw문을 사용해서 예외를 다시 발생시킨다. 예외 되던지기의 예시 1. BadInputException 클래스를 하나 만들어준다. public class BadInputException extends Exception { BadInputException() { super("잘못된 값을 입력하셨습니다."); } } 2. InputMismatchException이 발생하면 BadInputException을 던지도록 한다. import java.util.InputMismatchException; import j..

    [TIL] ConcurrentModificationException

    ConcurrentModificationException linkedList를 이용하여 다음 코드와 같이 문제를 풀어보려고 했는데 ConcurrentModificationException이 발생했다. public static void main(String[] args) { LinkedList linkedList = new LinkedList(); Iterator it = linkedList.iterator(); for (int i = 1; i

    [WIL] 230612 ~ 230618

    > 목표 달성 여부 이번 주 내가 한 것 회고 다음 주 목표 목표 달성 여부 ✅새로운 팀 인사 잘하기 ❓ 스프링 강의를 열심히 듣고 과제 수행하기 ✅ 스터디 잘 진행하기 ✅ 배운 것 TIL로 잘 기록하기 ❌ I/O 나머지 예제 공부해서 TIL로 남기기 ❓ 지치지 말기 이번 주 내가 한 것 1. 자바의 정석 예외 파트 공부 스스로 책과 예제를 보고 공부하고, 연습문제도 풀어보고, 예외 되던지기는 어디에 쓰이는지 튜터님께 여쭤도 보고, 그 과정도 TIL로 기록하였다. 2. 스터디에서 풀 리퀘스트로 리뷰를 진행 풀 리퀘스트에서 리뷰 진행하는 방법을 공부하여 문서로 기록하였다. 스터디원들에게도 가르쳐주어 단순히 발표만 하고 지나가는 시간이 아니라 확실히 다른 사람의 코드를 한 번 더 보고 공부할 수 있게끔 하였..

    [TIL] 포크 저장소와 내 로컬을 동기화하기

    [TIL] 포크 저장소와 내 로컬을 동기화하기

    > * 첫 번째 방법 - sync fork * 두 번째 방법 - bash를 이용하여 포크 주소를 이용하여 fetch해오는 방법 첫 번째 방법 sync fork -> 내 원격 master브랜치로 복사 완료 -> 내 로컬에서 pull 로 원격 master 데이터 가져오기 -> 내 로컬 브랜치를 내 로컬 master와 merge하기. 1. sync fork 클릭! sync fork 하는 것은 내가 포크해온 레포지토리와 내 레포지토리의 master 브랜치에 싱크가 맞춰지는 것. 2. 포크 레포지토리와 연결된 프로젝트가 있는 폴더로 가서 git bash 열기. 3. git checkout master branch를 master로 checkout. ( 옆에 master 뜨는지 확인. ) ※ 브랜치를 옮길 때는 ch..

    [TIL] < 자바의 정석 > 예제 HighLow - 예외처리해보기

    오늘은 예제 부분을 다 공부 했으므로 거의 마지막이었던 HighLow 문제 예외처리해보기를 기록해보려고 한다. 예제 8-7. 다음은 1~100사이의 숫자를 맞추는 게임을 실행하던 도중에 숫자가 아닌 영문자를 넣어서 발생한 예외이다. 예외처리를 해서 숫자가 아닌 값을 입력했을 때는 다시 입력을 받도록 보완하라. 1과 100사이의 값을 입력하세요 :50 더 작은 수를 입력하세요 1과 100사이의 값을 입력하세요 :asdf Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.throwFor(Scanner.java:939) at java.base/java.util.Scanner.ne..

    [TIL] printStackTrace()는 왜 아래에 찍힐까?

    > printStackTrace()는 왜 아래에 찍힐까? printStackTrace()의 구현은 어떻게 되어 있을까? err 출력 스트림? printStackTrace()의 취약점 printStackTrace()는 왜 아래에 찍힐까 예제 8-5를 배우고 있었다. 코드는 다음과 같았다. public class Ex8_5 { public static void main( String[] args ) { System.out.println( 1 ); System.out.println( 2 ); try { System.out.println( 3 ); System.out.println( 0 / 0 ); System.out.println( 4 ); } catch ( ArithmeticExcepti..

    [TIL] 풀리퀘스트로 코드 리뷰하기!

    [TIL] 풀리퀘스트로 코드 리뷰하기!

    풀 리퀘스트로 코드 리뷰하는 방법 이제까지 풀리퀘스트로 각자의 코드를 모으기만 했었는데, 풀 리퀘스트의 장점인 코드 리뷰를 스터디에서 적용시켜 보기로 했다. 스터디원들에게 코드 리뷰하는 방법을 알려주기 위해 공부한 과정을 기록한다. 1. 자신이 포크해온 원래 레포지토리로 들어가서 pull request 탭으로 들어간다. 2. 코드 리뷰할 풀 리퀘스트로 들어가서 Conversation 탭에 있는 설명을 읽어보고 어떻게 문제를 풀었고, 코드를 썼는지 파악한다. 남이 자신의 코드를 파악하기 좋게 풀 리퀘스트를 할 때 설명을 잘 해야 한다! 3. Files changed 탭에 들어가서 코드리뷰할 파일을 선택한다. 4. 리뷰를 남겨보자. 1) 한 줄에 대한 리뷰를 남기고 싶을 때 줄 옆에 +가 뜬다! 누르면 리뷰..