전체 글
-
자바 - Generics언어/JAVA 2023. 3. 16. 12:09
1. Generics란? -데이터타입의 일반화를 의미 (generalize) -다양한 타입의 객체를 다루는 메서드나, 컬렉션 클래스에 타입체크 기능 -컴파일 시 이러한 타입 체크를 통해 타입의 안정성을 제공하고, 타입체크와 형변환 생략으로 코드가 간결해진다. 간단하게 객체의 타입을 미리 명시하므로써 형변환의 번거로움을 줄이고, 잘못된 타입의 기입을 컴파일 과정에서 잡아내어 오류를 줄여준다. *generics가 도입되기 이전인 JDK 1.5이전에는 여러타입을 매개변수로 받거나, 반환할 때 Object를 사용했다. ->이 경우에 Object타입을 다시 형변환해야하는 번거로움이 있고, 이 과정에서 오류 발생 가능성이 있다. generics는 이를 보완해준다. * List처럼 인스턴스 필드에 타입 변수 객체 가..
-
배열 기반 List (C and java)자료구조와 알고리즘/자료구조 2023. 3. 10. 16:46
자료구조의 첫 걸음인 배열기반 리스트를 구현해 보았다. 추상자료형(ADT) -구현하고자 하는 자료구조에 대해 구체적인 기능의 완성과정을 언급하지 않고, 순수하게 기능이 무엇인지를 나열 한 것을 가리켜 추상자료형 ADT라고 한다. 특정 자료형의 내부 구현은 정확하게 알지 못해도 활용할 수 있도록 명시하는 작업이라고 생각해 볼 수 있다. (마치 자바에서 인터페이스 혹은 추상 클래스를 정의하는 것과 비슷한 느낌이다.) 자료구조를 공부할 때 1. ADT를 정의하고 2. ADT를 근거로 자료구조를 활용하는 함수를 정의하고 3. ADT를 근거로 구현하는 과정 위 3단계 과정이 필요하다. 배열을 이용한 LIST 자료형의 구현 리스트는 간단하게 말해서 저장순서를 유지하고, 중복을 허용하여 자료를 저장하는 구조이다. 1..
-
자바 콘솔 -bulls and cows 게임미니 2023. 3. 10. 13:57
class Number_exceed_Exception extends Exception { String msg; Number_exceed_Exception(int a, int b) { this.msg = "Error: it's not possible to generate a code with " + "a length of " + a + " with " + b + " unique symbols."; } Number_exceed_Exception() { } } class Maxinum_number_Exception extends Number_exceed_Exception { Maxinum_number_Exception() { super.msg = "Error: maximum number of possible ..
-
자바 콘솔 -커피머신미니 2023. 3. 9. 11:36
import java.util.Scanner; public class CoffeeMachine { public static void main(String[] args) { CoffeeMachine a = CoffeeMachine.getCoffeeMachine(); a.On(); } private int[] igre = new int[5]; private enum selection { ESPRESSO(new int[]{250,0,16,4}), LATTE(new int[]{350,75,20,7}), CAPPUCCINO(new int[]{200,100,12,6}); private int[] ing = new int[4]; private selection(int[] re){ this.ing = re; } pub..
-
스프링 - 간단 용어들 정리Web/Spring 2023. 3. 5. 21:30
-스프링을 배우며 등장하는 용어들 조금씩 정리 JSP(java Server Pages) HTML코드에 JAVA코드를 넣어서 동적 웹페이지를 생성하는 웹 어플리케이션 도구 자바 언어를 기반으로 하는 Server Side 스크립트 언어이다. WAS에서 jsp로 작성된 프로그램은 서버로 요청시 서블릿 파일로 변환된다. ->jsp태그 분해 추출 -> 순수 html로 변환 Servlet 웹 페이지를 동적으로 생성하는 서버 측 프로그램을 의미 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다. 정적 페이지 뿐 아니라 동적 페이지를 만들기 위해 등장 서블릿은 WAS(Web Application Server)의 서블릿 컨테이너 안에서 동작한다. WAS (Web Application Server) 웹서버 ..
-
스프링 MVC -간단한 코드로 보는 원리Web/Spring 2023. 3. 4. 15:44
https://j-d-i.tistory.com/4 스프링MVC -관심사의 분리 스프링MVC패턴이란? 스프링 MVC패턴은 Model-View-Controller로 각각의 역할을 분담하여 요청을 처리하는 것을 의미한다. Model은 데이터, View는 화면, Controller는 model과 view사이 처리를 담당하여 클라이언 j-d-i.tistory.com 앞선 글에서 스프링MVC를 간단하게 살펴보았다. 위 글에서 다루지 않은 dispatcherServlet이 클라이언트 요청을 처음으로 받고 처리하는 과정 특히, 요청을 받고 매핑된 메서드에 매개변수에 맞게 적절하게 자료형을 변환하는 과정등을 살펴보자 스프링이 내부적으로 처리해주는 기능이긴 하지만, 알고나면 조금이나마 스프링을 이해하고 활용하는데 도움이 ..
-
스프링MVC -관심사의 분리Web/Spring 2023. 3. 4. 12:53
스프링MVC패턴이란? 스프링 MVC패턴은 Model-View-Controller로 각각의 역할을 분담하여 요청을 처리하는 것을 의미한다. Model은 데이터, View는 화면, Controller는 model과 view사이 처리를 담당하여 클라이언트 요청을 처리하게된다. 그렇다면 어떤 기준으로 MVC패턴을 만드는 것 일까? 먼저 간단한 코드를 통해 관심사에 따라 전체 코드를 분리해서 생각해보도록 하자. 여기서 관심사는 각 코드 혹은 메서드등이 처리해야할 일이다. 크게 입력, 처리, 출력 나누어 생각해 볼 수 있다. *관심사의 분리는 객체지향 설계 SOLID원칙의 S(SRP)에 따라 담당하는 기능을 기준으로 클래스(객체)를 분리하여 프로그램의 유지보수성을 높이기 위한 기법에서 나온 것이다. 단일책임원칙에 ..
-
재귀자료구조와 알고리즘/자료구조 2023. 3. 2. 10:05
1. 함수의 재귀적 호출 함수의 재귀적 호출이란, 함수 내에서 자기 자신을 다시 호출하는 것 간단하게 이해하는 방향은 하나의 함수는 원본이 있고, 재귀호출이 발생하면, 복사본이 만들어져서 호출한다고 생각해보자. 간단한 예제를 통한 재귀 호출의 흐름 Num 3으로 시작해서 조건 검사 -> true면 호출종료, false면 num=2로 recursive 재호출 -> 종료조건 만족 시, recursive (0) 반환 -> recursive(1)반환 -> recursive(3)반환 순서로 이어진다. *재귀함수는 탈출조건이 필요하다. * recursive호출을 기준으로 위 문장은 최종 반환 전 모든 함수가 반복하는 것, recursive 후는 탈출조건 만족 후 함수가 반환을 시작하면서 반복할 문장 예제2 팩토리얼..