자바 애플리케이션, JVM 실행과정JVM 이란?- 스택 기반의 가상 머신- OS에 구애받지 않고 재사용 가능하게 함- 자바 바이트코드를 실행할 수 있는 주체자바 실행과정JVM은 OS로부터 프로그램이 필요로하는 메모리를 할당 받음javac(자바 컴파일러)가 .java코드를 읽어 .class로 변환시킨다 (.java -> .class)Class Loader를 통해 class 파일들을 JVM으로 로딩로딩된 class 파일들은 Execution Engine을 통해 해석해석된 바이트코드는, Runtime Data Area에 배치됨 (JVM은 필요에따라 실행중간에, 스레드 동기화와 GC 작업을 수행)클래스 로더란?- 자바는 런타임 도중에 로드하고 링크하는 특징이 있다- 런타임 도중에 (동적) 로드를 담당하는 부분이..
객체지향이란?필요한 데이터를 추상화 시켜서 상태와 행위를 가진 객체를 만들어서 사용절차적인 것과 달리, 객체들을 이용하여 유기적인 상호작용을 통해서 로직을 구성장점- 코드 재사용성 용이- 유지보수의 편리함- 대형 프로젝트에 적합단점- 처리속도가 상대적으로 느림- 객체가 많으면 용량이 커짐- 설계시 많은 시간과 노력이 필요 객체지향의 4가지 특징캡슐화접근제어자를 이용하여, 객체 안에 노출되어야할 것과 노출되지 말아야할 것을 정의하고 접근을 제어하여 은닉하는 것이 목적코드의 수정이 있을때도, 영향범위를 예측할 수 있어 유용함상속부모 객체의 속성과 기능을 이어받아 사용이 가능필요에 따라, 자식객체에서만 특정하여 수정이 가능추상화"공통의" 속성이나 기능을 묶어서 표현주로 추상화클래스 혹은 인터페이스를 이용하여 ..
문제문자열 {A, C, G ,T}인 문자열만 주어지는 상황1. 문자열 길이(S)를 입력 받고, 그 중에 부분 문자열(P)을 가지고 비밀번호를 만듬2. 부분 문자열중에서 비밀번호를 만들 때,A,C,G,T 각각의 만족하는 최소 조건이 존재3. 최소 조건을 만족하면 비밀번호를 만들 수 있음 (해당 개수 세기)4. 2초이내, (1 ex) A C G T A C G G T A C C (주어진 문자열) (A (2개), C(0개), G(1개), T(1개) 이상 조건 충족)->해당 조건을 만족하는, 비밀번호 만들 수 있는 개수 구하기 문제분석1,000,000개 이므로, O(n)으로 시간복잡도를 가져야함슬라이딩 윈도우를 이용하여, 부분문자열을 표현조건에 맞는 비밀번호 생성 문자를 이용하여, 몇개를 만들 수 있는지 구현[..
@InitBinder@PostConstruct@InitBinder입력 데이터 바인딩을 담당하기 위한 메서드컨트롤러 요청에 따라서, 해당 부분도 같이 호출됨update로직은 제대로 동작하나, 새로운 url로 맵핑되었을때 @InitBinder도 동작을하여 이전의 값이 그대로 나오는 문제 발생@InitBinder private void init(WebDataBinder webDataBinder){ Member member1 = new Member("admin","admin","admin","admin"); Member member2 = new Member("test","test","test","seoul"); Member member3 = new Member(..
1. 스프링 어노테이션 만들기2. 검증 관련 어노테이션 클래스 구현3. 패스워드 유효성 검사 예제 스프링 어노테이션 만들기@Constraintvalidation을 하기위한 구현체 연결 어노테이션@Target어노테이션을 사용할 곳default 값은 모든 대상Type 종류 타입설명ElementType.FIELD필드ElementType.METHOD함수ElementType.PARAMETER파라미터ElementType.CONSTRUCTOR생성자ElementType.LOCAL_VARIABLE지역변수ElementType.PACAGE패키지ElementType.ANNOTAION_TYPE다른 어노테이션@RETENTION어노테이션의 지속 시간종류타입설명RetentionPolicy.SOURCE컴파일 후에 해당 어노테이션이 사..
1. 직접 검증2. BindingResult3. 애노테이션 사용 직접검증HashMap을 이용하여, error를 담고 ModelAttribute로 반환thymeleaf의 조건문과 삼항문을 이용하여, error 인 경우와 정상인경우 렌더링//[Controller] Map errors = new HashMap(); if ( member.getPasswd() != null && member.getPasswd().length() >= 8 ){ if (member.getPasswd().matches("[a-zA-Z]+")){ errors.put("passwd", "비밀번호는 숫자와 특수문자를 포함해야합니다."); }..
1. 문제2. 문제 분석3. 슈도코드4. 구현문제주어진 N (1 - 숫자 범위 : ( 숫자 - 2초 이내 풀어낼 것 ( CPU 계산 : 1초에 1억번 연산 )- N세제곱은 시간 오버이므로, 주의하며 구현 문제분석N제곱 안에 문제를 풀어내야함 (시간제한)투포인터 ( O(n) )를 사용하여 , 두수의 합으로 표현되는 수 찾기 가능단, 두수의 합으로 표현되는 수의 개수를 찾는것이기에 한가지 조합만 있으면 됨[투포인터]* 투포인터 사용 전, 오름차순 정렬이 전제 조건임1. Arr[i] + Arr[j] 2. Arr[i] + Arr[j] > M // j 감소3. Arr[i] + Arr[j] == M // count 증가, i 증가, j 감소 슈도코드N (배열의 개수) for (N만큼 반복){ A배열에..
1. 유틸리티 설명2. 주요 메서드 유틸리티 설명[java.util.Arrays]- JAVA에서 배열을 조작하는 유틸리티 메서드를 제공하는 클래스- 배열을 정렬하거나, 검색하거나, 복사하거나, 배열의 내용을 비교하는 등의 작업을 간편하게 수행 주요메서드sort()배열을 정렬하는 메서드오름차순으로 기본 정렬숫자나 문자열등의 배열을 간판하게 정렬int[] arr = {5,3,6,1};Arrays.sort(arr);binarySearch()배열에서 특정 값을 이진탐색으로 찾음배열이 이미 정렬되어있어야함값이 있는 위치의 인덱스를 반환 (값이 없으면 음수 값 반환)int index = Arrays.binarySearch(arr,3);boolean isEqual = Arrays.equals(arr1,arr2);fi..
- Total
- Today
- Yesterday
- 타입변환
- 백준
- 오블완
- JDBC
- DFS
- Java
- 포트폴리오
- 게시판 프로젝트
- 클래스
- bean
- Thymeleaf
- 정렬
- 티스토리챌린지
- 게시판
- db
- SQL
- HTML5
- 코딩테스트
- 검증
- 예외처리
- 기술면접
- stack
- 깊이우선탐색
- JSON
- 우선순위 큐
- Spring
- BFS
- 버블정렬
- 이진탐색
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |