WEB 108

[Chrome] 개발자 도구에서 로그찍기 (로그지점/logpoint)

지금까지 웹 개발을 하면서 개발자 도구의 활용법에 대해 크게 관심을 기울이지 않았다. 단순히 몇초만 수고스러우면 되다보니 주로 디버깅 체크포인트를 활용하는 정도로 개발 시 사용했었다. 그러나 오랜만에 시간적 여유로움이 생겨 웹 개발과 관련된 포스팅을 살펴보니, 개발자 도구에는 엄청나게 유용한 기능들이 많다는 것을 다시 한 번 깨달았다. 몇 초만 투자하면 되는 간단한 작업이 아니라, 더욱 효율적이고 고급스러운 작업을 수행할 수 있는 방법들이 존재한다. 해서 이러한 유용한 발자 도구를 효과적으로 활용하면서 발견한 다양한 팁과 기능들을 정리하려고 한다. logpoint (로그 지점) chrome 73버전에 추가된 기능이다. 로그 지점(Logpoints)은 코드를 복잡하게 만들지 않고도 간편하게 콘솔에 메시지를..

[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

Fail2ban

Fail2ban 이란? Fail2Ban은 로그 파일을(예: /var/log/apache/error_log) 검사해서 다건의 로그인 실패, 취약점을 찾는 요청 등 악의적 행동을 보여 주는 IP를 차단합니다. 일반적으로 Fail2Ban은 지정한 시간동안 IP 주소를 차단하도록 방화벽 규칙을 업데이트하는 데 사용되지만 다른 많은 동작을 설정할 수도 있지습니다 (예: 이메일 전송). Fail2Ban은 다양한 서비스를(아파치, courier, ssh 등) 위한 필터를 포함하고 있습니다. Fail2Ban은 잘못된 인증 시도의 비율을 줄일 수 있지만 취약한 인증 방법을 사용하는 데 따르는 위험을 완전히 제거하지는 못합니다. 서비스를 보호하려면 반드시 2단계 인증이나 공개/개인키 인증 매커니즘 둘 중 하나를 사용하도록..

WEB 2022.06.27

ajax success 후에 return 값 받기

function ajaxReturnData(){ var result_data; $.ajax({ type : "post" ,url : "" ,data : data ,dataType : "json" ,async : false success: function(data, textStatus) { result_data = data; } }); return result_data; } 함수 내에 변수 선언후 ajax success 시에 해당 변수에 서버에서 return해준 값을 담아서 return !! ajax는 기본 동기식이기 때문에 async: false 옵션을 추가하여 비동기로 통신해야한다.

WEB/JavaScript 2021.05.07

JPA (Java Persistence API )

JPA란- Java 진영의 ORM(Oriented Relational Mapping)표준 기술- 범용 기술로 만들어졌기 때문에 Java EE와 SE환경 어디서도 사용 가능하다.- Java EE 5.0 어노테이션을 사용하여 Java 객체에서 RDB로 Mapping하는 방법을 단순화 시켰다. ※ ORM : 데이터베이스와 객체 지향 프로그래밍 언어간 호환되지 않은 데이터를 변환하는 프로그래밍 기법이다.따라서 OOP와 RDBMS 중간에서 소통을 위해 통역기 역할을 해주기 때문에 개발자는 OOP 개발에 더욱 집중할 수 있게되고RDBMS 는 상대적으로 덜 고려해도 된다.※ RDB : 관계형 데이터베이스. 키(Key)-값(Value)의 쌍으로 이루어진 관계를 테이블화 시킨 전산 정보 데이터베이스 JPA 의존성 추가-..

WEB/Spring 2017.04.21

HandlerMethodArgumentResolver

HandlerMethodArgumentResolver ▷스프링 3.1에서 추가된 인터페이스 이전의 ArgumentResolver 사용은 추천하지 않는다고 명시되어있다. ▷Controller개발 중에 들어오는 파라미터를 수정하거나 공통적으로 추가해야 할 경우 필요한 값들을 Controller에서 바로 사용할 수 있게 해준다. ▷컨트롤러의 파라미터가 Map이면 동작하지 않는 경우가 있다. (Map은 ArgumentResolver에서 동작하게 된다.) ▷supportsParameter, resolveArgument를 상속받아 구현 해야한다. import org.springframework.core.MethodParameter; import org.springframework.web.bind.support.We..

WEB/Spring 2017.02.01

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

@Controller

기본 Spring 프레임워크 2.5에서 추가된 어노테이션. 기존의 XML파일에서 명시해줬던 정보들(요청과 Controller 매핑설정 등)을 Controller 코드(클래스)안에서 어노테이션을 선언하여 Controller라고 명시해주고 @Controller 어노테이션과 하위 어노테이션을 계층형으로 구성하여 그 외 정보들을 명시한다. Controller : 클라이언트의 요청을 처리한 뒤, 그 결과를 DispatcherServlet에게 알려준다. 설명 @Controller 해당 클래스가 Controller임을 명시한다. Spring MVC에서 해당 어노테이션으로 컨트롤러를 생성한다. @Controller public class SampleController{ } @RequestMapping Controlle..

WEB/Spring 2017.01.30