WEB/Java 12

[Junit] MockMvc에서 session 사용하기

개발 완료 후 테스트 상황에서 MockMvc를 사용하기로 했다. 해당 부분은 추후 정리예정이다. 여하간 controller를 테스트 하기 위해서 사용했는데, 해당 controller에서는 사용자가 로그인을 했는지 안했는지 판단하기 위해 session을 확인하기 때문에 테스트 중 오류가 발생했다. 따라서 MockMvc에서 session을 사용하는 방법을 알아보았다. 사용법은 간단하다. MockHttpSession 클래스를 사용하면 끝! MockHttpSession session = new MockHttpSession(); HttpServletRequest와 동일하게 getSession(0 / setSession() 사용이 가능하다. 따라서 session에 담긴 데이터를 사용하는 controller를 테스트..

WEB/Java 2023.04.18

StringEscapeUtils

StringEscapeUtils HTML 문자 escape 할때 사용 sql을 사용해서 필터와 같은 기능을 구현하는 와중에 웹 브라우저에서 서버로 보내는 파라미터 중 특수문자가 인코딩(Encoding)되어 기능 구현에 문제가 생겼다. 예를들면, 나&너라는 값을 가지고 있는 데이터를 조회하려는데 서버에서 받은 파라미터 값을 보니 나&apm;너 와 같이 인코딩 되있었다. 해서 StringEscapeUtils 클래스를 사용해 디코딩을 하여 해결! escape(encode) 사람이 인지하는 문자를 규칙에 따라 컴퓨터가 이해할 수 있는 언어(0,1)로 이루어진 코드로 변환하는것 을 통틀어 지칭함. 즉 정해진 규칙에 따라 코드화, 암호화, 부호화 함 unescape(decode) : escape/encode 된 문..

WEB/Java 2023.02.23

Scanner, BufferedReader

Scanner▷사용이 편리하다.▷java.util 패키지▷띄어쓰기나 개행문자(Enter, \n)가 들어오면 다른 글자로 인식한다. 생성 Scanner in = new Scanner(System.in); 주요 메소드in.next()▷하나의 단어를 입력받는다.▷첫 단어의 앞쪽 공백과 개행문자는 무시하고 하나의 단어를 입력받고, 단어 뒤 개행문자는 버려지지 않는다.in.nextLine()▷한 줄을 입력받는다.▷개행문자까지 입력받으며, 개행문자는 버려진다.in.close▷현재 스캐너를 종료합니다.in.hashNext()▷입력 값의 마지막까지 다른 Token이 있으면 true 리턴.in.hashNextLine()▷한 줄 내용이 존재하면 1을 리턴, 없으면 0을 리턴한다. BufferedReader▷java.io ..

WEB/Java 2017.01.31

Spring Framework : DI

DI (Dependency Injection)▷프로그래밍에서 구성 요소간의 의존 관계가 소스코드 내부가 아닌 외부의 설정파일을 통해 정의되게 하는 디자인 패턴▷Spring에서는 이러한 의존성 관계가 있을 때 프레임워크가 작업을 처리해줌. 위와 같을 때 (Class A가 ServiceA와 ServiceB에 종속) ClassA에 대한 독립적 테스트가 어렵고, 종속성의 변경이 있을 때 ClassA의 소스 코드를 변경해야 한다. 또한 ClassA에는 종속 관계를 정의, 지정 및 관리하기 위한 반복적인 코드가 들어가게 되는 문제점 들이 생긴다. 이러한 문제를 해결하기 위해서 Class 내에서 종속성을 인스턴스화 하지 않고, 종속성의 유효한 인스턴스를 얻게 위해 객체의 생성 및 초기화를 빌더 객체를 통해서 한다. ..

WEB/Java 2017.01.03

Spring Framework : 개념

Spring Framework▷Java 플랫폼을 위한 오픈소스 어플리케이션 프레임워크▷동적 웹 사이트 개발을 위한 다양한 서비스 제공▷국내 공공기관의 웹 서비스 개발 시 사용을 권장하고있는 정자정부 표준프레임워크의 기반 기술로 쓰이고 있다.▷종속 객체를 생성해주고, 조립해주는 도구 특징경량 컨테이너▷Java 객체를 직접 관리하고, 각각의 객체의 생성/소멸 같은 생명 주기를 관리하며 Spring으로부터 필요한 객체를 얻을 수 있다.POJO(Plain Old Java Object) 방식▷특정한 인터페이스를 구현하거나 상속받을 필요 없이 기존의 라이브러리 드을 지원하여 구현이 용이하고 객체가 가볍다▷POJO : Java EE등의 중량 프레임워크를 사용하게 되면서 프레임워크에 종속된 무거운 객체를 만들게 된 것..

WEB/Java 2017.01.03

String

String▷불변객체이다. (한번 객체가 생성되면 저장된 값은 변경되지 않는다)▷String a = new String("abc") , String a ="abc" 두 가지 유형으로 생성가능 String과 new String의 차이점메모리 영역(String Pool)▷new String, String 모두 객체를 생성한 다는 점을 같지만 생성되는 메모리 영역이 다르다,이미지 참조(journaldev.com) ▷String s = ""를 이용해 문자열을 생성하면 String Pool에서 동일한 값을 가진 String을 먼저 찾고, 같은 값이 있다면 단지 그 값을 참조하고 같은 값이 없다면 Pool에 새로운 String을 생성하고 참조자를 반환한다.▷new 연산자를 사용하면(new String) 새로운 St..

WEB/Java 2017.01.03

오버라이딩(Overriding), 오버로딩(Overloading)

오버 라이딩(Overriding)▷상위 클래스의 기능을 하위 클래스가 상속 받아 기능의 동작 방법을 변경하는 것. 조건▷메소드의 리턴 타입이 같아야 한다.▷메소드의 이름이 같아야 한다.▷메소드의 매개변수의 숫자와 데이터 타입 그리고 순서가 같아야 한다. 예 // 상위 클래스 class parents{ int x, y; public void setXY(int x, int y){ this.x = x; this.y = y; } public void sum(){ System.out.println(this.x + this.y); } public void avg(){ System.out.println(this.x + this.y / 2); } } //하위 클래스 (상속) class child extends pare..

WEB/Java 2017.01.03

Map 인터페이스

Map 인터페이스▷ key-value 쌍으로 이루어져 있다. key또는 value만을 저장할 수 없다.▷ key는 배열의 index, value는 배열의 멤버 객체와 같은 의미이다.▷ key는 문자열, 정수형, Object 객체형 등의 다른 데이터 형이 될 수 있고, key 값을 사용자가 직접 입력한다.▷ 고유 값인 key와 연결된 객체들을 관리하는 집합▷ 데이터의 순서가 중요하지 않다. Map 인터페이스 주요 메소드 구현 클래스▷ HashMap* Hashtable과 함께 가장 많이 사용된다.* 보통 배개변수가 없는 생성자를 사용하지만 저장할 데이터가 많은 경우 초기에 크게 지정하는 것을 권장한다. ▷Hashtable* HashMap과 거의 유사하다.* 동기화를 제공한다. ▷ LinkedHashMap* ..

WEB/Java 2016.12.14

List 인터페이스

List 인터페이스▷ 배열과 가장 형태가 비슷한(순서가 있다는 점, 중복 허용) Collection▷ 중복된 데이터를 허용하고 입력 순서대로(FIFO) 멤버 객체를 처리할 수 있다.▷ 구현 클래스들은 보통 순차 처리를 하고 대량의 데이터를 처리할 때 많이 사용된다.▷ 다른 Collection들 보다 속도가 빠르다.▷ Collection관련 클래스의 객체를 선언할 때는 제네릭을 사용하는 것을 권장. 한 클래스에 한가지 타입의 객체를 저장하여 컴파일 시 타입을 잘못 지정한 부분을 걸러낼 수 있다. 인터페이스 구현 클래스▷ ArrayList* 배열 기반으로 처리한다.* 멤버 객체의 순차적인 삽입, 삭제 시 가장 속도가 빠르다.* 배열을 사용하여 멤버 객체들을 처리하여 리스트 중간의 삽입, 삭제 시에는 유용하지..

WEB/Java 2016.12.14
반응형