TiL
-
[Spring MVC] MVC 디자인 패턴MVC : Model-View-Controller의 약자로, 소프트웨어 디자인 패턴 중 하나MVC 패턴 : 소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리ㄴ 코드의 재사용성과 유지보수성을 높이고, 개발자들 간의 협업을 용이하게 함ㄴ 따라서 소프트웨어를 개발할 때, MVC 패턴을 적용하여 구조를 잘 설계하는 것이 중요Model데이터와 비즈니스 로직을 담당데이터베이스와 연동하여 데이터를 저장하고 불러오는 등의 작업을 수행View사용자 인터페이스를 담당사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현ControllerModel과 View 사이의 상호작용을 조정하고 제어사용자의 입력을 받아 Model에 전..
[TIL] 230514 <Spring> Spring MVC[Spring MVC] MVC 디자인 패턴MVC : Model-View-Controller의 약자로, 소프트웨어 디자인 패턴 중 하나MVC 패턴 : 소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리ㄴ 코드의 재사용성과 유지보수성을 높이고, 개발자들 간의 협업을 용이하게 함ㄴ 따라서 소프트웨어를 개발할 때, MVC 패턴을 적용하여 구조를 잘 설계하는 것이 중요Model데이터와 비즈니스 로직을 담당데이터베이스와 연동하여 데이터를 저장하고 불러오는 등의 작업을 수행View사용자 인터페이스를 담당사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현ControllerModel과 View 사이의 상호작용을 조정하고 제어사용자의 입력을 받아 Model에 전..
2024.05.14 -
[프로젝트 생성과 Git 연동] *편의기능* 1. Auto Import 2. Editor Zoom : Mouse Wheel [Gradle]빌드 자동화 시스템- Build : 소스 코드를 실행 가능한 결과물로 만드는 과정- Gradle을 사용하여 간편하게 Java 소스 코드를 실행 가능한 jar 파일로 만들 수 있음 build.gradleGradle 기반의 빌드 스크립트- 소스 코드를 빌드하고 라이브러리들의 의존성 쉽게 관리 가능- groovy 또는 kotlin 언어로 작성 가능필요한 외부 라이브러리들을 dependencies 부분에 작성 시 Gradle이 해당 라이브러리들을 Maven Repository와 같은 외부 저장소에서 자동으로 다운로드해옴 (https://mvnrepository.com/) ..
[TIL] 230513 <Spring> 학습 준비하기[프로젝트 생성과 Git 연동] *편의기능* 1. Auto Import 2. Editor Zoom : Mouse Wheel [Gradle]빌드 자동화 시스템- Build : 소스 코드를 실행 가능한 결과물로 만드는 과정- Gradle을 사용하여 간편하게 Java 소스 코드를 실행 가능한 jar 파일로 만들 수 있음 build.gradleGradle 기반의 빌드 스크립트- 소스 코드를 빌드하고 라이브러리들의 의존성 쉽게 관리 가능- groovy 또는 kotlin 언어로 작성 가능필요한 외부 라이브러리들을 dependencies 부분에 작성 시 Gradle이 해당 라이브러리들을 Maven Repository와 같은 외부 저장소에서 자동으로 다운로드해옴 (https://mvnrepository.com/) ..
2024.05.13 -
불변 객체 (Immutable Object) 공유된 참조 객체의 값을 변경하여 발생하는 문제들을 해결 가능→ 객체가 가지고 있는 필드(멤버 변수)를 변경할 수 없도록 설계 public class ImmutableReference { private final String name; //final로 선언하여 값 변경 불가 // 생성자만 값설정 가능 public ImmutableReference(String name) { this.name= name; } public String getName() { return name; } // final 키워드로 값의 변경이 불가능하여 해당 메서드 사용불가// public void setName(String..
[TIL] 240510 불변 객체(Immutable Object)불변 객체 (Immutable Object) 공유된 참조 객체의 값을 변경하여 발생하는 문제들을 해결 가능→ 객체가 가지고 있는 필드(멤버 변수)를 변경할 수 없도록 설계 public class ImmutableReference { private final String name; //final로 선언하여 값 변경 불가 // 생성자만 값설정 가능 public ImmutableReference(String name) { this.name= name; } public String getName() { return name; } // final 키워드로 값의 변경이 불가능하여 해당 메서드 사용불가// public void setName(String..
2024.05.10 -
⚠️ 수강생을 삭제하는 메서드 실행 시 ConcurrentModificationException 발생하였음 // 1-2) 수강생 삭제 (점수까지 삭제) public static void deleteStudent() { Scanner sc = new Scanner(System.in); System.out.print("삭제하고 싶은 수강생의 번호를 입력하세요 : "); int studentId = sc.nextInt(); boolean flag=false; for (Student student : studentList) { if (student.getStudentID() == studentId) { ..
[TIL] 240509 <트러블 슈팅> ConcurrentModificationException⚠️ 수강생을 삭제하는 메서드 실행 시 ConcurrentModificationException 발생하였음 // 1-2) 수강생 삭제 (점수까지 삭제) public static void deleteStudent() { Scanner sc = new Scanner(System.in); System.out.print("삭제하고 싶은 수강생의 번호를 입력하세요 : "); int studentId = sc.nextInt(); boolean flag=false; for (Student student : studentList) { if (student.getStudentID() == studentId) { ..
2024.05.09 -
>> sql문 실행 단축키 : ctrl + enter 사용할 수 없는 데이터가 들어있거나, 값이 없는 경우 방법1) 없는 값 제외 ● if(rating'Not given', rating, null)select restaurant_name, avg(rating) average_of_rating, avg(if(rating'Not given', rating, null)) average_of_rating2from food_ordersgroup by 1ㄴ 위의 코드를 실행 시 null인 row를 아예 제외하고 계산함 ● where 컬럼 is not nullselect a.order_id, a.customer_id, a.restaurant_name, ..
[TIL] 230508 <SQL> 없는 값 제외, 다른 값으로 대체, 범위지정, Pivot table, Window함수(Rank,Sum), 날짜포맷>> sql문 실행 단축키 : ctrl + enter 사용할 수 없는 데이터가 들어있거나, 값이 없는 경우 방법1) 없는 값 제외 ● if(rating'Not given', rating, null)select restaurant_name, avg(rating) average_of_rating, avg(if(rating'Not given', rating, null)) average_of_rating2from food_ordersgroup by 1ㄴ 위의 코드를 실행 시 null인 row를 아예 제외하고 계산함 ● where 컬럼 is not nullselect a.order_id, a.customer_id, a.restaurant_name, ..
2024.05.08 -
>> sql문 실행 단축키 : ctrl + enter REPLACE : 특정 문자를 다른 문자로 바꾸기replace(바꿀 컬럼, 현재 값, 바꿀 값) select addr "원래 주소", replace(addr, '문곡리', '문가리') "바뀐 주소"from food_orderswhere addr like '%문곡리%' SUBSTRING(SUBSTR) : (특정 위치의) 특정 문자만 조회substr(조회 할 컬럼, 시작 위치, 글자 수) select addr "원래 주소", substr(addr, 1, 2) "시도"from food_orderswhere addr like '%서울특별시%'// 서울지역의 음식타입별 평균음식 주문금액select substring(addr, 1, 2..
[TIL] 240507 <SQL> REPLACE,SUBSTRING,CONCAT,IF,CASE,Subquery,JOIN>> sql문 실행 단축키 : ctrl + enter REPLACE : 특정 문자를 다른 문자로 바꾸기replace(바꿀 컬럼, 현재 값, 바꿀 값) select addr "원래 주소", replace(addr, '문곡리', '문가리') "바뀐 주소"from food_orderswhere addr like '%문곡리%' SUBSTRING(SUBSTR) : (특정 위치의) 특정 문자만 조회substr(조회 할 컬럼, 시작 위치, 글자 수) select addr "원래 주소", substr(addr, 1, 2) "시도"from food_orderswhere addr like '%서울특별시%'// 서울지역의 음식타입별 평균음식 주문금액select substring(addr, 1, 2..
2024.05.07 -
>> sql문 실행 단축키 : ctrl + enter column(필드)에 별명(alias) 짓기 1. 별명 지정 방법 (1) 컬럼 as 별명(2) 컬럼 별명 2. 별명 사용 시 유의사항영문,언더바별명만 적음ord_no한글,특수문자(영어 사이에 - 들어가도!)"별명"(큰따옴표 안에 별명)"ord-no" "주문번호" 필터링 시 문자라면 '문자' (작은따옴표를 붙여줘야함) (WHERE절) 필터링 조건 지정 방법 1. 비교연산자 : 같지 않다(다르다)예시) select * from customers where ~age21 : age가 21이 아닌 것들gender'female' : gender가 female이 아닌 것들 2. 다양한 조건의 종류(1) between A and B : A 이상 B ..
[TIL] 240503 <SQL> 별명(alias),WHERE절,연산,BETWEEN,IN,LIKE,SUM,AVERAGE,COUNT,DISTINCT,GROUP BY, ORDER BY, DESC>> sql문 실행 단축키 : ctrl + enter column(필드)에 별명(alias) 짓기 1. 별명 지정 방법 (1) 컬럼 as 별명(2) 컬럼 별명 2. 별명 사용 시 유의사항영문,언더바별명만 적음ord_no한글,특수문자(영어 사이에 - 들어가도!)"별명"(큰따옴표 안에 별명)"ord-no" "주문번호" 필터링 시 문자라면 '문자' (작은따옴표를 붙여줘야함) (WHERE절) 필터링 조건 지정 방법 1. 비교연산자 : 같지 않다(다르다)예시) select * from customers where ~age21 : age가 21이 아닌 것들gender'female' : gender가 female이 아닌 것들 2. 다양한 조건의 종류(1) between A and B : A 이상 B ..
2024.05.03 -
[13. 모던자바 (람다, 스트림, Optional)] Java 8에서 새롭게 추가된 개념1. 함수형 프로그래밍의 기능들 (1) 함수를 일급 값으로! (메서드 참조 기능의 도입) >> 값으로 전달할 함수 생성// Car 클래스 내부에 두 메서드 구현public static boolean hasTicket(Car car) { return car.hasParkingTicket;}public static boolean noTicketButMoney(Car car) { return !car.hasParkingTicket && car.getParkingMoney() > 1000;} >> 함수형 인터페이스interface Predicate { boolean test..
[TIL] 240502 <자바> 람다,스트림,Optional + Git 심화 특강(2)[13. 모던자바 (람다, 스트림, Optional)] Java 8에서 새롭게 추가된 개념1. 함수형 프로그래밍의 기능들 (1) 함수를 일급 값으로! (메서드 참조 기능의 도입) >> 값으로 전달할 함수 생성// Car 클래스 내부에 두 메서드 구현public static boolean hasTicket(Car car) { return car.hasParkingTicket;}public static boolean noTicketButMoney(Car car) { return !car.hasParkingTicket && car.getParkingMoney() > 1000;} >> 함수형 인터페이스interface Predicate { boolean test..
2024.05.02