분류 전체보기(49)
-
[MySql] Sql Injection
위키백과의 Sql Injection를 검색하면 다음의 카툰이 있다. 이게 무슨 말인고 하니, 학교의 데이터베이스에서는 다음과 같은 명령어를 쓰고 있다. INSERT INTO students (이름) VALUES ('학생 이름'); 여기서 학생의 이름을 입력하면 다음과 같이 된다. INSERT INTO students (이름) VALUES ('Robert'); DROP TABLE students; --'); 첫번째 줄에서 Robert가 입력되었지만 두번째 줄에서 students라는 테이블이 제거 된것이다. 그리고 뒤에 오는 내용들을 주석처리해버렸다. 그래서 해당 학생의 이름을 넣으면 최종적으로 모든 학생 기록이 삭제된다. W3 Schools에도 Sql Injection 항목이 있다. 설명을 보면 가장 기본..
2022.06.14 -
[JAVA] 싱글턴(Singleton) 패턴이란?(feat. 디자인 패턴)
싱글턴 패턴을 말하기 앞서 디자인 패턴에 대해 알아야 한다. 디자인패턴이란? 디자인이라 하면 보통 심미적이거나 이쁜 모형, 예술을 생각이 먼저 나겠지만 코딩 세상에서는 특정 맥락에서 자주 발생하는 고질적인 문제들이 발생했을 때 재사용할 수 있는 훌륭한 코드디자인 혹은 방법을 말하는 것이다. (훌륭한 코드가 멋지고 이뻐 보여서 그런가...) 그리고 패턴이란 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 설계과정에서 이를 처리하는 해결책 사이에 공통점들을 말한다. 일맥상통하는 구간이라고 생각하면 될 것 같다. 디자인패턴의 종류 GoF 디자인 패턴의 분류 생성(Creational) 패턴 구조(Structural) 패턴 행위(Behavioral) 패턴 추상 팩토리(Ab..
2022.06.14 -
[MySql] VS code와 리눅스 연동하기
vscode는 Microsoft사에서 만들었으며, Linux, Windows, Mac 운영체제를 모두 지원하는 에디터 툴이다. Git연동도 쉬울 뿐 아니라 mySql과의 연결도 쉬워 다양한 용도로 유용하게 사용할 수 있다. 나의 경우에도, UBUNTU에서 직접 명령어 입력, Workbench, Notepad++ 등 활용하는 방법이 있지만 VS code를 통해서 데이터베이스를 확인하는 것이 제일 편한 것 같다. vscode에서 mysql 설치방법 1. Extensions에서 MySQL 2가지 버전을 다 install 한다. 2. Extension 보다 좀더 아래 database라는 탭이 있다. 연결되어 있지 않으면 "You haven't created any connections learn more." 이..
2022.06.14 -
[JSP] 자바빈즈 기능과 사용법(feat. DAO, DTO(VO))
개발 환경 구축 전에 자바에 tomcat이 연결되어야 한다. Tomcat 과 웹서버는 한 세트라고 보면 되는데, 간단하게 설명을 읽어보며 그 이유를 파악해보겠다. Apache Tomcat란? 아파치 톰캣(Apache Tomcat)은 아파치 소프트웨어 재단에서 개발한 서블릿 컨테이너(또는 웹 컨테이너)만 있는 웹 애플리케이션 서버이다. 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바서버 페이지(JSP)와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다. 톰캣은 관리툴을 통해 설정을 변경할 수 있지만, XML 파일을 편집하여 설정할 수도 있다. 그리고, 톰캣은 HTTP 서버도 자체 내장하기도 한다. 아파치 톰캣은 Apache Licence, Version 2를 채용한 오픈소스 소프트..
2022.06.13 -
[JAVA] split vs StringTokenizer
StringTokenizer 클래스란? 문자열이 특정 구분자(delimeter)로 연결되어 있을 경우, 구분자를 기준으로 부분 문자열을 분리하기 위해서는 String의 split() 메소드를 이용하거나 java.util 패키지의 StringTokenizer 클래스를 이용할 수 있다. StringTokenizer는 한 종류의 구분자로 연결되어 있을 경우, 사용이 편리하다는 장점이 있다. StringTokenizer 사용방법 관련 클래스 임포트를 해야 작동한다. import java.util.StringTokenizer; 1) 선언 StringTokenizer st = new StringTokenizer("문자열", "구분자"); 2) 문자 나누며 꺼내기 2-1) 전체 토큰 수를 얻어 for문으로 loopi..
2022.06.09 -
[JAVA] BufferedReader/ BufferedWriter/ StringBuilder
일단 왜??? 굳이 코드 복잡한 이런 아이들을 사용하는 이유 : 1. 메모리 초과 문제 2. 속도 지연 문제 String은 불변객체이다. String에 대한 설명을 보면 String의 값은 생성하면 변경 불가하다는 것을 알 수 있다. 그럼 그동안 + 하면서 만들던 것은 다 뭐였지????? String greeting = "hello"; System.out.println(greeting.hashCode()); greeting = "hello" + "!!!!!"; System.out.println(greeting.hashCode()); greeting = "hello" + "oo"; System.out.println(greeting.hashCode()); 같은 변수 greeting이지만 이들이 다 다른 ha..
2022.06.09