。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

분류 전체보기 393

Model, Request

회사 소스를 보던 중 컨트롤러에서 모델에 맵을 담았는데,, jsp 파일에서 request에서 데이터를 뽑아오는 것을 보고 한참 생각했다. 나는 ,, request에 담은 적이 없는데 왜,, 여기서 꺼내는 거지 ,, !? 설마,,, 모델에 담으면 request에 담은 것과 같은 효과가 있는 것인가 !? 나의 추측이 맞았다! model 에 담으면 request 영역에 저장되며 해당 view에서만 사용 가능하지만 request에 담으면 더 넓은 범위에서 사용할 수 있단다 ! Controller @RequestMapping(value = "aa101.ajax") public String aa101(Map paramMap, ModelMap map, HttpServletRequest request) throws E..

업무 2024.02.02

equals와 ==

공통점: boolean type으로 반환 차이점: equals : 대상의 내용(값)을 비교하는 메서드 == : 대상의 주소값을 비교하는 연산자 메서드: 일련의 작업을 수행하기 위한 코드 블록 연산자: 값을 조작하거나 특정한 계산을 수행하기 위한 기호나 키워드 Object의 equals() public boolean equals(Object obj) { return (this == obj); String 클래스 equals()가 재정의 되어있어서 주소값을 비교하는 것이 아니라 내용을 비교하게 된다. public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { Str..

카테고리 없음 2024.01.29

log4j2

log for java 로깅 시스템 설정하기 & 설정위치 1) Maven 라이브러리 추가 2) log4j2.xml 파일 생성 실질적인 로그 설정 코드 : 현재 콘솔에 로그 출력, : 로그로 찍히는 패턴 설정 %d: 로그 시간에 관한 설정, 괄호 안의 형태로 포맷 %p: 로그 레벨, %c: 로그가 발생한 클래스 경로, %m: 로그 메시지, %n은 개행(줄 바꿈) : 설정한 로그 코드 적용 :현재 시스템에서 발생하는 모든 로그를 찍어낼 수 있고 level을 debug로 설정하여 debug 이상의 로그만 출력되도록 한다. 로그 레벨은 로깅 시스템의 설정을 통해 지정하며, 설정된 로그 레벨 이상의 중요도를 가진 로그 메시지만 기록된다. 로그 레벨을 'DEBUG'로 설정하면 'TRACE'보다 중요한 'DEBUG'..

업무 2024.01.28

URL / URI

URL ( Uniform Resource Locator ) - 통합 자원 지시자 Resource의 정확한 위치 정보(파일의 위치) 구조 scheme host(domain) :port /path ?query #fragment https:// timi-d.tistory :3000 /manage/newpost ?type=post&page=5 #url차이 scheme host(domain) :port /path ?query #fragment 통신 (방식) 프로토콜 결정 웹페이지, 이미지 등의 파일이 위치한 웹 서버, 도메인 또는 IP 웹서버에 접속하기 위한 경로 루트 디렉토리부터 웹페이지 파일이 위치하기까지 경로 key=value 형식의 추가질문 세부 부분 지정 URN ( Uniform Resouce Name)..

CS 2024.01.26

[SQL] DDL, DML, DCL, TCL

SQL은 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계한 특수 목적의 프로그래밍 언어이다. 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다. 스키마: 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것. 문법 DDL(Data Definition Language, 데이터 정의어) DDL ( Data Definition Language)은 데이터베이스 스키마를 정의하는 일련의 SQL 명령. 데이터베이스 스키마에 대한 설명을 다루고 데이터베이스 개체의 구조를 만들고 수정하는 데 사용. CREATE : 새로운 테이블 생성 ALTER : 기존 테이블 구조 변경 DROP : 기존 테이블 삭제 ..

CS 2024.01.25

[MyBatis] #{}과 ${}

#{} 쿼리문을 작성할 때 #{}을 사용하는 경우 PreparedStatement를 생성하게 되는데 ?에 파라미터가 바인딩되어 수행된다. 이렇게 파싱된 쿼리문은 재활용(캐싱)되기 때문에 효율적이다. 그리고 변수에 작은 따옴표(‘)가 자동으로 붙여 쿼리가 수행되기 때문에 '#{id}'와 같은 식으로 쿼리문을 작성하지 않아도 된다. ${} 값이 넣어진 채로 쿼리문이 수행된다. 그렇기 때문에 파라미터의 값이 바뀔 때마다 항상 쿼리문 파싱을 진행해야 하며 성능상의 단점이 존재한다. 그리고 쿼리문에 #{}을 사용한 것과 다르게 작은 따옴표(‘)가 붙지 않기 때문에 아래처럼 테이블 이름이나 컬럼 이름을 동적으로 결정할 때 사용할 수 있고 SQL 인젝션에 취약하다. SQL Injection 문제 SELECT * FR..

업무 2024.01.24

Exception 예외

1. 일반 예외 : 컴파일 체크 예외, Checked Exception 자바 소스를 컴파일하는 과정에서 예외 처리 코드가 필요한지 검사하기 때문이다. 만약 예외처리 코드가 없다면 컴파일 오류가 발생하게 된다. 따라서 반드시 try-catch로 감싸거나 throws로 던져서 처리해야함. [예외처리] // try - catch public static void file1() { try { FileWriter file = new FileWriter("data.txt"); file.write("Hello World"); file.close(); } catch(IOException e) { e.printStackTrace(); } } --------------------------------------------..

CS 2024.01.23