일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java
- Client
- Jenkins
- TypeScript
- ssh
- mariadb
- 해시
- Linux
- github
- DISTINCT
- SSL
- db
- centos7
- Spring Legacy Project
- window
- vagrant
- 책 정리
- 토비의스프링
- sample
- Git
- 코딩테스트
- Hibernate
- TLS
- spring boot
- AWS
- 프로그래머스
- jdbc
- docker
- spring
- EC2
- Today
- Total
목록전체 글 (104)
Woopii Vyeolog
github : https://github.com/leewoopyo/exam/tree/master github에 repository 생성 우선, github로 버전을 관리하기 위해서 github에 repository를 하나 생성할 것이다. 내 작업 폴더에 해당 repository를 생성 할 폴더 생성 후 SourceTree로 github에 생성한 해당 repository의 클론 생성 1. github에 생성한 repository 주소 복사 2. SourceTree 실행 후 Clone만들기에서 주고 붙여넣고 폴더 경로를 내가 생성한 폴더로 설정 3. 생성 확인 성적 관리 프로젝트 생성 1. File --> New --> Dynamic Web Project 클릭 2. 프로젝트 이름과 위에서 만든 경로로 설정..
스프링 다운 : https://spring.io/ Spring Tools 4 다운로드 (자신의 컴퓨터 환경에 맞게 다운) 다운 받으면 jar파일 하나를 다운 받게 되는데, (spring-tool-suite-4-4.5.1.RELEASE-e4.14.0-win32.win32.x86_64.self-extracting) 압축 해제하면, (sts-4.5.1.RELEASE)와 같은 폴더가 생성됨 실행 가능 작업 공간 생성 sts실행 시 작업환경 경로로 설정하고 실행 실행 실행 화면(나는 이미 몇개 진행한 폴더가 있어서 왼쪽 에 프로젝트 몇개가 있음 ) UTF-8 설정을 위해서 설정에 들어감 Window --> preferences (설정) 설정 화면 General --> Workspace --> Text file E..
Vector vs Arraylist 둘다 크기가 동적인 배열을 사용 할 때 주로 사용한다. Multi Thread 환경에서는 데이터에 접근할 때 해당 데이터에 대한 무결성이 보장되어야 하는데 Arraylist는 비동기식이라 여러 Thread에서 동시에 접근이 가능하지만 Vector의 경우, 동기식이라서, 하나의 Thread에서 접근하면 다른 Thread에서는 접근이 불가능 하다. 대신 동기식인 Vector는 Arraylist에 비해 속도가 느리다. 따라서, MultiThread 환경이 아니라면 Arraylist를 사용하는 것이 성능적인 면에서 좋고, MultiThread환경에서는, 데이터 무결성을 위해 vector를 사용해야 한다.
한 권의 책을 예시로 들어본다. (table 이름은 'book' 이다.) 당연히 책 안의 내용은 DB의 데이터가 된다. 그리고 책의 페이지는 데이터가 저장된 레코드 주소가 될 것이다.(ID) DBMS에서 원하는 데이터 결과를 가져오려면, 첫 페이지에서, 마지막 페이지까지 모든 페이지를 검색한다.(Full scan) PAGE TITLE 001 A 002 A 003 A ......... 099 A 100 B 101 B 102 B .......... 199 B 200 C 201 C 202 C ........ 299 C 위처럼 구성된 책에서 'B'만을 검색하려고 하면 Select page From book where title = 'B'; 1번 페이지부터 계속 검색을 해서 100페이지 째에서 B를 검색하고 마지..
일단, 이 세 클래스는 모두 문자열을 저장하고 관리하는 클래스이다. String은 불변(immutable)하고 StringBuffer,StringBuilder은 가변(mutable)하다. String String 클래스는 두 클래스와는 다르게, literal방식을 통해 생성하게 되면 그 크기(공간)는 절대 변하지 않는다. //리터럴로 생성하는 방식 String literal = "literal"; //new로 생성하는 방식 String new = new String("literal"); //위에서 "literal" 이라는 문자열을 String Pool에서 생성했기 때문에 //이후에 추가한 str1, str2, str3는 추가적으로 생성하지않고 똑같은 문자열을 가리킨다. String str1 = "lite..
Garbage Collector(GC) 메모리 관리 기법 중 하나 프로그램이 동적으로 할당했던 메모리 영역 중에서, 필요없게 된 영역을 해제하는 기능이다. 쓰레기 수집은 동적 할당 된 메모리 영역 가운데, 더 이상 사용할 수 없게 된 영역을 탐지하여 자동으로 해제하는 기법이다. 더 이상 사용할 수 없게 된 영역이란, 어떤 변수도 가리키지 않게 된 영역을 의미한다. 장단점 아래와 같은 버그를 줄이거나 완전히 막을 수 있다. 유효하지 않은 포인터 접근 : 이미 해제된 메모리에 접근하는 버그 이중 해제 : 이미 해제된 메모리를 또다시 해제하는 버그 메모리 누수 : 더이상 필요하지 않은 메모리가 해제되지 않고 남아있는 버그 하지만 아래와 같은 단점이 있다. 어떤 메모리를 해제할지 결정하는 데 비용이 든다. 객체..
framework? 프레임워크는 뼈대나 기반구조를 뜻하고, 제어의 역전 개념(IOC)이 적용된 대표적인 기술. 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' 이라 할 수 있으며, 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야한다. 객체 지향 개발을 하게 되면서 통합성, 일관성의 부족이 발생되는 문제를 해결할 방법중 하나. 라이브러리? 라이브러리는 단순 활용가능한 도구들의 집합. 즉, 개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식을 취하고 있다. 프레임워크와 라이브러리의 차이점 제어의 흐름(flow)이 누구에게 있는지가 중요하다. (흐름의 주도성을 누가 갖고 있는가?) 프레..
예를 들어서 관리자가 성적 조회 어플리케이션을 사용한다고 가정한다. 그 과정은 1. 조회(데이터 취득) 2. 수정 (데이터 갱신) 3. 성적 입력(데이터 등록) 등이 있을 수 있다. 일련의 과정을 거치면서 매 작업마다 DB접속이 있어난다. 한명이 이러한 작업을 할 경우 별 문제 없지만, 수백, 수천의 사람이 동시에 작업한다면 문제가 생긴다. 이러한 문제를 해결하기 위해 나온 기법이 Connection pool 이다. 커넥션 풀(Connection pool)이란, DB와 연결할 Connection 객체들을 Pool에 저장해 놓았다가 클라이언트 요청이 오면 커넥션을 빌려주고, 볼일이 끝나면 다시 반납받아서, pool에 저장하는 방식이다. DB를 연결할 때, 커넥션 풀을 사용하면, 미리 연결을 맺고 있는 커넥..