일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 프로젝트
- IT
- jsp
- List
- 개발자
- Oracle
- sql
- param
- 프레임워크
- el표기법
- Java
- JSTL
- 웹개발자
- forTokens
- MVC
- servlet
- sendRedirect
- spring
- 리액트
- 실기
- 1회
- map
- c:out
- 정보처리기사
- 스프링
- forward
- set
- 2021년
- 그레이들
- DB
- Today
- Total
목록개발 용어/Spring (11)
룽쓰의 개발도구

우리가 흔히 사용하는 코드가 있다. select * from board 개발을 해봤더라면 누구나 한 번쯤 사용해봤을 법한 순수한 SQL문이다. 하지만 이것을 사용하게 될 때 어떤 동작을 하고 어떤 상황에 놓이는지 자세히 생각해본 적이 없다. 오늘은 위 SQL문이 실행될 때 어떤 조건으로 진행되고 특이사항은 어떤 것이 있는지 알아보자 먼저, 어떤 SQL문을 사용하던지 간에 비용이 들기 마련이다. 여기서 비용이란? 1) 물리적인 메모리 비용 2) 시간적인 비용 우리가 중요하게 여겨야 할 부분이다. 아무리 좋은 성능을 가진 프로그램이더라도 사용자가 사용하기 위해서 들어왔는데 조회 속도가 무진장 느리면? 한건 조회하는데 10초가 걸린다면 어떻게 할 건가. 예전과 같으면 기다릴 수 있겠지만 현재 컴퓨터와 인터넷 ..

우리는 지금까지 Spring을 접하면서 XML에 직접 값을 저장하고, BEAN을 통해서 객체를 미리 만들어두는 것을 했다. 그렇게 되면 계속해서 XML에 작성해야 할 것은 많아지고, 특히 내가 사용할 클래스를 만들고 난 뒤에 XML에서 다시 코딩을 해야 하는 번거로움이 있었다. 이것을 해결하기 위해서 Component Scan을 사용할 수 있다. 즉, 기존 xml에서 하나하나 bean을 통해서 만들어줬던 것을 component scan을 통해서 굳이 그렇게 할 필요가 없게 되는 것이다. 사용법부터 먼저 보자. 내가 참조할 xml에 위 코드를 넣게 되면 com.springbook.biz를 포함한 모든 패키지(명시된 패키지와 하위 패키지)에서 지정해둔 모든 클래스를 들고 올 수 있는 역할을 한다. 그럼 Co..

List, Set, Map은 모두 유사한 특징을 갖고 있다. 어떤 값들을 저장하기 위한 것으로 단순히 변수 1개에 값 1개를 저장하는 구조가 아닌, 변수 1개에 값을 여러 개 저장하는 구조를 띄고 있는 것이다. 이것은 여러 방면에서 효율적이라고 볼 수 있는데, 변수를 만들 때는 메모리에서 그 변수에 값을 할당할 수 있도록 저장 공간을 빌려주기 때문에 변수를 많이 생성할수록 메모리에서 할당되는 값이 커지게 된다. 그것을 효율적으로 관리하기 위해서 변수에 배열을 삽입하는 것이고 그것이 List, Set, Map으로 만들어진 것이다. 그럼 List와 Set은 앞서 차이점을 공부했는데 Map은 어떤 차이점을 갖고 있는 것일까? # Map은 키와 밸류로 이루어져 있는 배열이다. 즉, 키를 알면 그 값인 밸류를 알..
앞선 #18과 #19를 통해서 List와 Set의 특징에 대해서 알아봤다. 그럼 Spring을 접하기 전에 우린 Java에서 어떤 식으로 구현했고, 어떤 차이점이 있는지 확인할 수 있었을까? package org.setandlist; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; public class SetAndList { public static void main(String[] args) { List list = Arrays.asList("홍길동","일지매","임꺽정","홍길동"); for( String name : list) { System.out.printf(name+" ..

** 스프링에서 Set을 구현해보자! ** 우리가 흔히 사용하는 List와 Set은 어떤 차이점이 있을까? List는 값의 중복 저장이 가능하고, 배열 안의 순서가 있다. Set은 값의 중복 저장이 불가능하고, 배열 안의 순서가 없다. 즉, Set은 복주머니 안에 들어있는 동전이라고 생각하면 좋다! 우리가 마구잡이로 숫자를 담아서 주머니 안에 넣어두면 그 숫자의 순서는 없기 때문이다. 값은 일정하게 유지될 수 있지만 어떤 값이 먼저 나오고, 어떤 값이 뒤에 나올지는 아무도 모르는 것이 Set의 특징이다. 그럼, Set을 일반적으로 저장하는 방법이 아닌, Spring에서 그것도, xml을 통해서 저장하기 위해서는 어떻게 해야 할까? [ A. SetBean.java ] 우선 set을 담을 수 있는 클래스를 ..

List의 다른 이름으로는 배열이다. 즉, 뭔가를 순서대로 놓을 수 있는 것이다. 그림을 보면, apple, banana를 입력한 뒤 새로운 값을 집어넣기 위해서 add() 메서드를 사용했다. 즉, 일반적으로 Java에서 우리는 List를 어떻게 사용해왔는지 기억하면 된다. List list = new ArrayList(); list.add("홍길동"); list.add("구지훈"); list.add("오징어"); 위 코드와 같이 부모인 List에 구현된 ArrayList의 새로운 객체를 만들어서 add메서드를 통해 값을 집어넣었다. 기존의 부모 클래스인 List는 배열의 길이가 고정되어있는 방식이기 때문에 수정할 수 없다는 단점이 있었지만, ArrayList는 그 한계점을 극복했다. String lis..
우리가 클래스를 만들고 사용할 때, TV를 만들어두고 volumeUp메서드를 실행할 때 스피커 클래스의 메서드가 출력되도록 하고 싶으면 어떤 방법들이 있을까? 방법 1. private SonySpeaker speaker = new SonySpeaker(); 방법 2. 일반적으로 우리가 사용하는 것은 TV 클래스 안에서 방법 1과 같이 객체를 생성해주는 것을 해왔다. 그럼 방법 2는 무엇일까? 앞서 말했던 것처럼 일단 컨테이너 안에서 일이 진행된다. 즉, 컨테이너에서 bean을 통해 SamsungTV를 만들 때, speaker도 사용할 수 있도록 한 것이다. 이렇게 설정을 해두면 우린 SamsungTV 클래스 안에서 SonySpeaker 클래스의 메서드도 사용할 수 있기 때문에 사용할 때마다 객체를 생성할..
스프링에서 컨테이너를 설정해주고 난 뒤 메인 메서드에서 사용하는 것이 있다. AbstractApplicationContext GenericXmlApplicationContext XmlWebApplicationContext 도대체 이 3개는 뭐에 쓰는걸까? 웹이 아닌 곳에서 사용하기 위해서는 2번째인 GenericXmlApplicationContext를 사용하고, 웹에서 사용하기 위해서는 XmlWebApplicationContext를 사용하자.