원인 작업하다가 아래와 같은 쿼리에서 의문점이 생김. 좌측 날짜와 시간을 나타내는 문자형 데이터(실제로는 테이블 데이터 비교하기 쉽게 직접 값 넣음)와 우측 현재 시스템 시간을 YYYYMMDD 형식으로 변환한 문자형을 비교하는데 보자마다 생긴 의문점은 자릿수와 날짜 형식이 다른데 어떻게 비교가 되는가 였고 더욱 의문점은 원하는 결과가 나왔다는 것이다. 문제의 쿼리 1 2 3 4 5 6 7 SELECT * FROM TABLE01 WHERE '20200101000000'
SQL 변수 종류 리터럴 변수 란? sql 구문 중 where절에 column과 비교되는 값이 상수값으로 직접 선언된 경우의 변수 예) SELECT * FROM TABLE01 WHERE COL01 = "TEST"; 바인드 변수 란? sql 구문 중 where절에 column과 비교되는 값이 바인드 변수 형태로 사용하는 경우의 변수 바인드 변수의 자리에는 parameter로 넘겨지는 값들이 대체됨. 예) SELECT * FROM TABLE01 WHERE COL01 :=1; PARSE 종류 HARD PARSE sql 구문을 수행 시 SGA - shared pool - Library Cache 영역에서 해당 구문이 존재 여부를 조회하여 존재하지 않는 경우 해당 구문의 문법 및 권한 검사, 테이블 및 컬럼 존재..

JVM jvm은 OS로부터 java application이 필요로 하는 메모리 영역을 할당 받음. 해당 메모리 영역을 효율적으로 사용하기 위해서 관리하는 역할 수행. 메모리 관리 시 Garbage Collection을 수행. (OS로부터 할당받은 메모리 영역 = Runtime Data Area) Garbage Collection (GC) Runtime Data Area 중 Heap 메모리 영역에 사용하지 않는 자원을 메모리에서 삭제 하는 작업. (자원=객체) Heap 영역 구조 Yong Generation 영역 : 생명주기가 짧은 객체 존재 세부적으로 아래 두 영역으로 구분 Eden : 객체가 최초 생성되면 보관되는 영역 Supervisor(from, to) : MinorGC 시 Eden 영역과 함께 비..
발단현재 사용 중인 DB는 oracle이며, 이미 생성되어 있는 테이블에 중국어 데이터를 insert 할 작업이 잡혔다.전달받은 중국어 데이터를 insert 후 정상적으로 데이터가 적재되었는지 확인하였으나실제 확인된 데이터는 ?(물음표)가 포함되어 있는 비정상적인 형태로 적재가 확인되었다. 직접 결과를 확인하며 진행하기 위해 select 쿼리 실행 후 결과를 보고 비교해보겠다.수행 쿼리 : select '服务' from dual; 결과 : 服? 이와 같이 중국어 데이터의 깨짐 현상이 보였다. 원인 분석참고로 중국어, 일어 등의 유니코드를 지원하지 않는 CharacterSet을 가진 DB에서 유니코드를 지원하기 위해 사용되는 CharacterSet으로 National CharacterSet 이 있다.Nat..
ajax를 사용해야하는 부분이 있어서 평소와 같이 ajax 호출을 하여 반환값로 다음 로직을 진행하는 방식 구현하는 와중에 내가 원하는 값이 반환되지 않는 것을 확인하였다. 작성중이던 소스는 간략하게 아래와 같다. 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 function a(){ $.ajax({ url : '/ajax/result', dataType : 'json', data : jsonData, method : 'POST', succecss : function(data){ retrun data.value; }, error : function(e){ alert(e); return; } }) } function b(code){ ...
WEB란? 정적 자원(이미지, CSS, javascript)을 제공 클라이언트로부터의 요청을 받음. 웹서버에서 응답이 가능한 요청인 경우 WAS까지 가지 않고 웹서버에서 제공 WAS의 처리가 필요한 요청인 경우 WAS로 요청을 넘김. 많이 사용되고 있는 웹서버로는 apache 가 있음. WAS란? 동적 자원을 제공 DB 처리가 필요한 경우 특정 데이터마다 표출되는 값이 다른 경우 세션 관리 웹서버 + 컨테이너 많이 사용되고 있는 WAS로는 JBOSS, Tomcat, WebLogic, Jeus가 있음. WEB과 WAS를 분리하는 이유 꼭 웹서버와 WAS를 분리해야만 하는 것은 아님. WAS만으로도 정적리소스 경로를 잡아서 사용 가능. 하지만! 웹서버에서 처리할 수 있는 영역을 따로 분리하면 WAS의 부하를..
SSL이란? SSL(Secure Socket Layer)은 클라이언트와 서버의 통신을 제3자가 인증해주는 방식 SSL 사용 이유 클라이언트와 서버간에 통신내용을 암호화하여 통신 중 내용이 노출되어도 암호화된 내용을 쉽게 복호화 할 수 없기 때문에 통신 내용 노출을 방지할 수 있음. 암호화 방식의 종류 대칭키 방식 동일한 키로 암호화/복호화 하는 기법 대칭키가 노출된다면 대칭키를 확보한 사용자라면 복호화가 가능 공개키 방식 공개키와 비공개키를 이용하여 암호화/복호화 하는 기법 대칭키의 취약점은 보완하여 데이터를 제공해주는 서버측에서 비공개키와 그에 대한 공개키를 생성하여 해당 서버에 요청을 보낸 클라이언트에게 암호화된 정보와 인증서, 공개키를 보냄. 이때 클라이언트는 수신 받은 공개키를 이용하여 암호화된 ..

SpringBoot를 이용해서 프로젝트를 진행하다가 SpringBoot는 어떻게 별도의 설정 없이 구동이 되는지 궁금하여 찾아보게 되었다. SpringBoot는 프로젝트를 생성 시 사용할 옵션을 선택하여 프로젝트가 생성되며, Spring Boot App을 실행하면 별도의 설정 없이 기본적으로 사용할 옵션이 설정되어 프로젝트가 구동이 된다. 이때 어떻게 자동으로 설정이되는지 확인해보았다. 우선 프로젝트를 생성하면 pom.xml에 아래와 같이 선택한 옵션에 대한 Dependency를 확인할 수 있다. 위와 같이 보통은 "spring-boot-starter-선택옵션명" 규칙으로 생성되며 해당 Dependency로 필요한 의존성과 설정을 자동화한다. Spring Boot App을 실행하면 "@SpringBoot..
- Total
- Today
- Yesterday
- Java
- docker
- React
- JSON
- web
- 비밀스캔
- Eclipse
- IMAGE
- html
- SSL
- SpringBoot
- 컨테이너
- SQL
- Windows
- jQuery
- mybatis
- Git
- tomcat
- vscode
- 깨짐
- Push
- Oracle
- gradle
- TLS
- parse
- Linux
- JPA
- WAS
- spring
- 날짜
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |