728x90

Programming 281

Spring - 정리 (2023.05.26.FRI)

- 쿼리 스트링, 파라미터 1. 웹에서 주소창 뒤에 '?'로 시작하는 내용물을 쿼리 스트링이라고 한다. 데이터를 전달하기 위해서 사용한다. 2. 쿼리 스트링은 '키=값'의 형태로 데이터를 전달하는데 여러 개의 데이터가 필요한 경우 '&'를 이용해서 연결한다. 이러한 '키=값'의 형태를 흔히 '파라미터 이름과 값'이라고 한다. - 태그를 이용해서 action을 통해 데이터를 전달 할 경우 ${param}을 사용해서 전달 받은 데이터를 사용할 수 있다. SEND // post 방식으로 num1과 num2에 데이터를 담아서 전송 // calcResult.jsp ... NUM1 ${param.num1} NUM1 ${param.num2} - 웹의 파라미터는 모두 문자열이기 때문에 결과 데이터를 처리하기 위해서는 ..

Programming/Spring 2023.05.26

Spring - Cookie (쿠키)

- HTTP에서 세션 트레킹은 '쿠키(Cookie)'라는 존재를 이용한다. '쿠키'는 문자열로 만들어진 데이터의 조각으로 서버와 브라우저 사이에서 요청(Request)이나 응답(Response) 시에 주고받는 형태로 사용된다. - 쿠키는 문자열로 되어있는 정보로 가장 기본적인 형태는 '이름(name)'과 '값(value)'의 구조이다. -쿠키를 주고받는 기본적인 시나리오는 다음과 같다. 1. 브라우저에서 최초로 서버를 호출하는 경우에 해당 서버에서 발행한 쿠기가 없다면 브라우저는 아무것도 전송하지 않는다. 2. 서버에서는 응답(Response) 메시지를 보낼 때 브라우저에게 쿠키를 보내주는데 이때 'SetCookie'라는 HTTP 헤더를 이용한다. 3. 브라우저는 쿠키를 받은 후에 이에 대한 정보를 읽고..

Programming/Spring 2023.05.26

Spring - Lombok 라이브러리

- Lombok 라이브러리 1. Lombok을 이용하면 간단한 어노테이션을 추가하는 것만으로 getter/setter 등을 생성하거나 생성자 함수를 정의하는 것을 처리할 수 있다. 1. getter/setter 관련 : @Getter, @Setter, @Data 등을 이용해서 자동 생성 2. toString() : @ToString을 이용한 toString() 메소드 자동 생성 3. equals()/hashCode() : @EqualsAndHashCode를 이용한 자동 생성 4. 생성자 자동 생성 : @AllArgsConstructor, @NoArgsConstructor 등을 이용한 생성자 자동 생성 5. 빌더 생성 : @Builder를 이용한 빌더 패턴 코드 생성

Programming/Spring 2023.05.25

Spring - JDBC

* 프로젝트 생성 시 JAVA EE 8에는 Tomcat 9 버전을 사용해야 한다. - JDBC 프로그램의 구조 1. 자바 프로그램과 데이터베이스를 네트워크 상에서 연결해 데이터를 교환하는 프로그램으로 관련 API는 java.sql 패키지와 java.sql 패키지를 이용한다. - JDBC 프로그램 작성 순서 1. 네트워크를 통해서 데이터베이스와 연결을 맺는 단계 2. 데이터베이스에 보낼 SQL을 작성하고 전송하는 단계 3. 필요하다면 데이터베이스가 보낸 결과를 받아서 처리하는 단계 4. 데이터베이스와 연결을 종료하는 단계 - JDBC 프로그래밍에서 가장 중요한 사실 중 하나는 'Connection은 반드시 close()해야 한다' - java.sql.PreparedStatement 1. JDBC에서 SQL..

Programming/Spring 2023.05.25

JAVA - 람다 (기본)

1. 람다식 - 람다식은 간단히 말해서 메서드를 하나의 '식'으로 표현한 것이다. 람다식은 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. - 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명 함수'이라고도 한다. int[] arry = new int[5]; Arrays.setAll(arr, (i) -> (int)(Math.random()*5+1); (i) -> (int)(Math.random()*5+1); // 메서드로 표현하면 int method() { return (int)(Math.random()*5+1; } 반환타입 메서드이름 (매개변수 선언) { 문장들 } // 람다식으로 변형 (매개변수 선언) -> { 문장들 } int max(int am int b..

Programming/JAVA 2023.05.18

JAVA - 컬렉션 프레임 워크 (Collections Framework), List, Set, Map ... (1) 그 중 List

- 컬렉션 프레임 워크에는 대표적으로 3개의 인터페이스가 정의되어 있다. 1. List 2. Set 3. Map - List와 Set 인터페이스는 조상 클래스로 Collention 인터페이스를 가지고 있다. 1. List List 인터페이스는 1) 순서가 있고, 2) 데이터의 중복을 허용한다. - 구현 클래스에는 1) ArrayList 2) LinkedList 3) Stack 등 여러가지 클래스가 있다. 2. Set Set 인터페이스는 1) 순서를 유지하지 않고, 2) 데이터의 중복을 허용하지 않는다. - 구현 클래스에는 1) HashSet 2) TreeSet 등 여러가지 클래스가 있다. 3. Map Map 인터페이스는 1) 키(Key)와 값(Value)의 쌍(pair)으로 이루어진 데이터의 집합이다. ..

Programming/JAVA 2023.05.18

JAVA - Reflection

- 자바 리플렉션(Reflection)이란 컴파일된 자바 코드에서 역으로 클래스를 불러서 메소드(Method) 및 변수(Field)를 구해오는 방법으로 클래스를 동적 로딩하여 사용할 때 많이 사용되고 디컴파일할 때에도 자주 사용되는 기법이다. MyClass myClass = new MyClass("asdf") String myName = myClass.getMyName(); 이런식으로 사용되는데, 이를 Reflection 으로 풀어보면 아래처럼 된다. 먼저 클래스(Class)를 불러오고, 생성자(Constructor)를 구하고, 생성자에 인자를 넘겨 생성자를 만들고 메소드를 얻어와서 invoke() 함수로 실행하는 과정을 거친다. 이를 Reflection 으로 풀어보면 아래처럼 된다. Class myCl..

Programming/JAVA 2023.05.14

JAVA - Class 클래스

- 자바의 모든 클래스와 인터페이스는 컴파일 후 class 파일로 생성된다. - class 파일에는 멤버변수, 메서드, 생성자 등 객체의 정보가 포함되어 있는데 Class 클래스는 이 class 파일에서 객체에 정보를 가져올 수 있다. Class c1 = String.class; String str = new String(); Class c2 = str.getClass(); Class c3 = Class.forName("java.lang.String"); - Class 클래스는 위와 같은 방법으로 불러올 수 있고 그 중에 forName을 통해 가져오는 방법이 많이 사용되고 이를 동적 로딩이라고 부른다. - 동적 로딩이라고 부르는 이유는 보통 다른 클래스 파일을 불러올 때는 컴파일 시 스태틱에 그 클래스 ..

Programming/JAVA 2023.05.14
728x90