
오늘은 학점계산기와 음식 주문 과정을 객체지향 설계 방식에 따라 구현해보는 실습을 진행하였다. 1. 학점 계산기 1) 요구사항 평균학점 계산 방법 = (학점수×교과목 평점)의 합계/수강신청 총학점 수 MVC패턴(Model-View-Controller) 기반으로 구현한다. 일급 컬렉션 사용 2) 객체지향 설계 과정 도메인 구성 객체 : 이수 과목(Course), 학점 계산기 객체 간 관계 : 학점 계산기가 이수 과목을 변수로 가질 것 동적 -> 정적 타입으로 추상화 : 다양한 이수 과목(자료구조, 데이터베이스) -> 과목 클래스 협력 설계 이수 과목(인자)을 전달하여 평균학점 계산 요청 to 학점 계산기 학점 계산기는 ① (학점수×교과목 평점)의 합계 와 ② 수강신청 총학점 수 를 요청하여 평균학점 계산하..

1. 객체 지향 1) 객체지향의 4가지 특징 추상화: 불필요한 부분을 제거하고 필요한 핵심만 남기는 것. (일반화, 단순화) 다형성: 다양한 형태를 갖는 것. 한 개의 타입으로 여러 종류의 객체를 참조하는 것. 캡슐화: 객체의 세부사항을 외부로부터 감추는 것. 상속: 부모로부터 물려받는 것. 2) 객체지향의 5가지 설계 원칙 (SOLID) 좋은 객체지향 코드를 작성할 수 있는 원칙 SRP : Single Responsibility Principle (단일 책임의 원칙) 하나의 책임을 갖게 하는 것. OCP : Open/Closed Principle (개방 폐쇄의 원칙) 기존 코드를 변경하지 않고 기능을 추가하는 것. LSP : Liskov’s Substitution Principle (리스코프 치환의 원..

오늘은 이어서 테스트 코드를 통해 개발하는 것을 실습할 것이다. 테스트 코드 실습을 위해서 자바에서 사용되는 단위 테스팅 프레임워크인 JUnit 5를 사용할 것이다. 더불어 테스트 코드의 가독성을 높여주는 AssertJ 라이브러리를 사용할 것이다. 1. 테스트 코드란 소프트웨어의 기능과 동작을 테스트 하는 코드이다. 테스트 코드에는 단위 테스트, 통합 테스트, 시스템 테스트, 사용자 인수 테스트 등이 있다. 2. 테스트 코드 사용 이유 문서화 : 잘 작성된 코드는 기능의 동작 방식을 이해하는데 도움을 줌 코드 품질 향상 : 결함을 미리 발견하여 수정 가능 리팩토링 시 (심리적) 안정성 확보 : 코드 수정이나 구조 변경 시 정상적으로 작동하는지 확인 가능 결합도 낮은 코드 지향 : 테스트하기 쉬운 코드를 ..

오늘은 Docker를 다운받아 MySQL 이미지를 실행하려 한다. 1. Docker Desktop Docker Desktop 웹사이트에 들어가 os에 맞는 도커 데스크탑을 설치한다. https://www.docker.com/products/docker-desktop/ 설치가 다 되었다면 재부팅을 해주고, 아래 코드를 통해 확인해 볼 수 있다. docker -v 도커 데스크탑을 열 때, wsl 버전이 낮아 실행하지 못하는 문제가 있었다. linux용 windows 하위 시스템이 설치되지 않았어서 문제가 발생했던 것으로 보인다. 안내되는 것처럼 cmd 창에 wsl --update 를 실행하여 문제를 해결할 수 있다. 2. MySQL Image MySQL image는 docker hub에서 다운받을 수 있다...
문제주어진 용액들 중에서 세 개를 선택해 특성 값의 합이 0에 가까운 조합을 찾는 문제이다.풀이정렬과 투 포인터 기법을 활용해 문제를 풀 수 있다.먼저 주어진 용액들의 정보를 오름차순으로 정렬하면 더 효율적으로 조합을 찾을 수 있다.세 개의 용액 중 한개를 임의로 고정하고 나머지 두 용액을 투 포인터로 탐색한다.첫번째 포인터(left)는 고정된 용액 바로 다음 위치를 가리킨다.두번째 포인터(right)는 정렬된 배열의 최대값인 오른쪽 끝을 가리킨다.세 원소의 합이 0보다 크면 오른쪽 포인터를 왼쪽으로 이동시켜 더 작은 값을 선택하게 한다.합이 0보다 작으면 왼쪽 포인터를 오른쪽으로 이동시켜 더 큰 값을 선택하게 한다.만약 0과 같으면 해당 조합이 최고의 조합임으로 해당 조합을 저장하고 탐색을 종료할 수..

어제 필요한 도구들을 설치했다면, 오늘은 IntelliJ IDEA에서 새 프로젝트 환경을 구성할 것이다. 1. IntelliJ IDEA 새 프로젝트 생성 새 프로젝트를 선택하여 'mvc-project' 이름의 프로젝트를 생성한다. Language: Java Build system: Gradle JDK: temurin 11 Gradle DSL: Groovy (Java 버전도 JDK와 같은 11버전으로 진행하였다.) 2. 초기 설정 프로젝트의 src > main > java > org.example > main.java 파일의 이름을 WebApplicationServer.java로 변경한다. 내가 작업하는 프로젝트의 경우 spring initializr를 통해 생성해서인지 MvcProjectApplicati..

1. 개발 환경 셋팅 자바 웹 애플리케이션을 개발하기 위해서 자바 프로그램을 쉽게 구성하고 작동할 수 있게 도와주는 JDK와 자바 개발 툴로 많이 쓰이는 IntelliJ IDEA, 동적인 웹을 만들기 위해 자주 쓰이는 Tomcat을 설치하려고 한다. 1.1. JDK 설치하기 (Eclipse Temurin) https://adoptium.net/ Home | Adoptium The Adoptium® Working Group The Adoptium Working Group promotes and supports high-quality runtimes and associated technology for use across the Java ecosystem. Our vision is to meet the ne..