본문 바로가기

분류 전체보기

(95)
캠프 성적관리 프로그램 5~7일차(KPT 회고록) 5일차에 각자 한 작업 현황에 대해 공유했는데 결국 전날에 생각해놓은 아이디어는 제시하지 못하고 마무리 되었다.이미 다들 작업을 마쳐놓은 상태라 여기서 의견을 따로 내는건 곤란했다.그렇게 마지막 날에는 발표를 하고 무사히 프로젝트는 마무리가 되었다. 이제 프로젝트를 끝내면서 KPT회고를 다같이 만들었다.KeepProblemTryGitHub 상에서 main에 merge할 때마다 모든 팀원이 적극적으로 공지서로의 코드를 살펴보면서 부족한 부분(예외처리, 요구사항 미준수 등)과 궁금한 부분에 대해서는 코드를 적극적으로 검증하고, 적극적으로 공유서로의 코드를 존중해서 서로 참조를 진행하면서 코드를 개발프로젝트 역할이 팀원 역량에 분배가 잘되어서 각자 정해진 시간에 완료github 외 miro, figma, no..
Java에서 문자를 정수로 변환하기 char형 문자 '1'을 int형으로 바꾸고 싶다고 무작정 앞에 (int)를 붙이면 안된다. (int) character; 처럼 괄호로 형 변환을 하면 1의 아스키 코드값으로 변환을 하기 때문에 의도하지 않는 결과가 나온다.char형의 문자를 같은 값의 숫자로 바꾸고 싶다면 Charater.getNumericValue()를 사용하면 된다.class Solution { // 숫자를 거꾸로 나열하기 public int[] solution(long n) { String n1 = String.valueOf(n); // long타입 n을 String으로 변환 int[] answer = new int[n1.length()]; // 거꾸로된 숫자를 저장할 배열 answer 선언 ..
SQL에서 DATETIME포멧을 DATE포멧으로 바꾸기 SQL에서 datetime필드의 레코드를 출력하면 "2024-05-09 20:30:00"같은 식으로 출력된다. 여기서 만약 우리가 뒤의 시, 분, 초는 필요없고 앞의 년, 월, 일 만 필요하다면 어떻게 해야 할 까?DATEFORMAT()함수를 활용하면 원하는 형태의 날짜 데이터를 추출할 수 있다.FORMAT설명%MMonth 월(Janeary, February ...)%mMonth 월(01, 02, 03 ...)%WDay of Week 요일(Sunday, Monday ...)%DMonth 월(1st, 2dn, 3rd ...)%YYear 연도(1999, 2000, 2020)%yYear 연도(99, 00, 20)%XYear 연도(1999, 2000, 2020) %V와 같이쓰임%xYear 연도(1999, 200..
캠프 성적관리 프로그램 프로젝트 4일차 오늘은 튜터님께 필자의 팀이 진행중인 프로젝트를 리뷰하는 날이다. 튜터님 께서는 예상했던 대로 코드가 지나치게 main메소드에 몰려있는 점을 지적하셨다. main메소드에 몰린 코드들을 여러 개의 클래스 파일로 나눠서 관리하면 좋다는 피드백을 받았다. 그 외에도 코드에서 변하지 않는 숫자들은 상수를 선언해서 사용하거나 메소드의 이름을 좀 더 직관적으로 바꿔서 가독성을 높이는 작업을 하면 좋다는 등의 피드백을 받았다.확실히 그냥 보기에도 지저분해 보이기는 해서 일단 각 기능별로 별도의 클래스파일을 생성해서 코드를 넣어두었다.public class CreateScore { private static Scanner sc = new Scanner(System.in); public static void ..
캠프 성적관리 프로그램 프로젝트 3일차 예상보다 계획된 기능들을 구현하는 게 오래 걸렸다. 오늘 아침이면 다 완성하고 추가 기능을 계획할 줄 알았는데, 오늘 늦은 저녁이 되서야 기능들이 전부 구현되었다.팀원들의 이야기를 들어보니까 의도하지 않은 입력값에 대한 예외 처리를 하는 게 어려워서 오래 걸렸다고 한다.팀원들이 마저 개발을 하는 동안 빠트린 코드가 없는지 확인을 하다가 잘못된 학번을 입력했을 때의 예외처리 과정을 깜빡해서 그걸 작업하였다.private static String getStudentId() { System.out.print("\n관리할 수강생의 번호를 입력하시오..."); String id = sc.next(); if (studentStore.stream().noneMatch((Stude..
SQL에서 null을 다른 값으로 치환하는 법 데이터베이스에 null이 존재할 때 null을 그대로 반환해야 하는 상황은 그리 많지 않을 것이다. 보통은 null을 다른 값으로 대체해서 반환하기 때문이다. sql에서 null을 반환하는 방법에는 여러가지가 있지만 가장 쉬운 ifnull()함수를 소개하겠다.SELECT IFNULL(컬럼명, 0) FROM TEST ; // TEST테이블의 컬럼명의 값이 null일 경우, 0으로 대체한다.0이 들어가는 자리에는 어떤 값을 넣어도 상관없다. 아래는 ifnull()의 사용 예시이다.-- 코드를 입력하세요SELECT ANIMAL_TYPE, IFNULL(NAME, "No name"), SEX_UPON_INTAKE FROM ANIMAL_INS// IFNULL(필드명, 대체할 값) : 레코드의 특정 필드의 값이 NU..
캠프 성적관리 프로그램 프로젝트 2일차 어제 개발한 성적추가기능을 개선해 볼 것이다. 마침 한 팀원이 수강생 추가 기능의 구현을 마쳤다는 이야기를 들었다.수강생은 3개의 필수과목, 2개의 선택과목 총 5개의 과목을 선택해야 한다는 규칙에 따라 필자는 성적을 추가할 때 수강생이 선택한 5개의 과목만 입력할 수 있도록 제한을 둘 것이다. System.out.println("시험 점수를 등록합니다...");// 기능 구현String studentId = getStudentId(); // 관리할 수강생 고유 번호sc.nextLine();Student student = studentStore.stream().filter((Student s) -> s.getStudentId().equals(studentId)).toList().get(0); // 수강중..
캠프 성적관리 프로그램 프로젝트 1일차 지난 5주차 분량의 Java 문법 종합반 강의를 수강하고 나서 Java문법을 응용하기 위해 팀 프로젝트를 하는 걸로 결정되었다. 프로젝트의 주제는 성적관리 프로그램이다. 긴 회의 끝에 개발 방향이 정해졌다. 아래는 팀 회의를 통해 나온 실행 흐름도이다.우선 저 데이터 모델을 자바 코드로 구현했다.package camp.model;public class Score { private String scoreId; // 성적 객체 고유id private Student student; private Subject subject; private int round; private int score; private char grade; }그리고 시험 점수를 저장하기 위해 Score..