일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- Algorithm
- 크루스칼
- dfs
- data structure
- Stack
- dbms
- 가상컴퓨팅
- 암호학
- 코딩테스트
- JPA
- MVC
- 코테
- generic class
- python
- jsp
- 자료구조
- 생성자
- Queue
- cloud computing
- Java
- BFS
- JDBC
- javascript
- 공개키 암호화
- spring
- 클라우드 컴퓨팅
- DB
- sql
- 자바의정석
- Today
- Total
목록2024/07 (7)
PLOD
기존에 Controller 클래스에만 의존하여 모든 기능을 처리하도록 한다면 문제가 발생할 수 있다. 한 개의 클래스에 너무 많은 양의 코드가 존재하기 때문에 코드를 이해하기 어려움 → 가독성 떨어짐현업에서는 코드의 추가 혹은 변경 요청이 계속 생길 수 있다.문제가 발생했는데 해당 Controller 클래스를 구현한 개발자가 퇴사한다면? → 유지보수성 떨어짐 이러한 문제점들을 해결하기 위해 서버 개발자들은 서버에서의 처리과정이 대부분 비슷하다는 걸 깨닫고, 처리 과정을 크게 Controller, Service, Repository 3개로 분리하였다. Web Layer흔히 사용하는 Controller와 JSP / freemaker 와 같은 view 템플릿 영역이다Filter,Intercepter,Con..
1. 데이터베이스 락에서 비관적 락과 낙관적 락에 대해 설명해주세요.더보기1. 비관적 락 (Pessimistic Lock)개념: 트랜잭션에 의해 데이터 충돌이 발생할 가능성이 높다고 가정하고, 트랜잭션이 데이터를 수정하는 동안 다른 트랜잭션이 해당 데이터에 접근하지 못하게 하는 방식입니다.동작 원리: 트랜잭션이 데이터를 읽거나 수정하려 할 때, 미리 락을 걸어서 다른 트랜잭션이 그 데이터를 수정하지 못하게 합니다. 락이 해제될 때까지 해당 데이터에 대한 접근이 제한됩니다.장점: 충돌을 미리 방지하므로 데이터 무결성이 보장됩니다.단점: 락을 오래 유지하게 되면 성능 저하가 발생하고, 자원 경쟁이 심한 경우 데드락(교착 상태)이 발생할 수 있습니다.사용 예시: 은행 시스템처럼 여러 사용자가 동시에 동일한 데..
인증과 인가인증(Authentication)인증은 해당 유저가 실제 유저인지 인증하는 개념해당 리소스에 대해서 작업을 수행할 수 있는 주체인지 확인하는 것인가(Authorization)해당 유저가 특정 리소스에 접근이 가능한 지 허가를 확인하는 개념인증 과정 이후에 일어나는 확인 과정filterFilter란 Web 애플리케이션에서 관리되는 영역으로 Client로 부터 오는 요청과 응답에 대해 최초/최종 단계의 위치이며 이를 통해 요청과 응답의 정보를 변경하거나 부가적인 기능을 추가할 수 있다주로 범용적으로 처리해야 하는 작업들(ex. 인증 , 인가와 같은 보안처리)에 활용로직을 비즈니스 로직과 분리하여 관리 할 수 있다는 장점Spring SecurityFilter chain Spring에서 모든 호출은 ..
Q : Call by reference란 무엇이고 보통 어떻게 쓰이나요?더보기Call by reference는 함수 호출 시 인수로 전달된 변수의 참조(메모리 주소)를 함수로 넘기는 방식입니다.→함수가 인수로 받은 변수를 직접 참조하기 때문에, 함수 내부에서 그 값이 변경되면 원래 변수의 값도 바뀌게 됩니다. 특징: 메모리 주소 전달: 변수를 복사하는 것이 아니라 그 변수의 메모리 주소를 전달합니다. 따라서 함수에서 변경된 값은 원래 변수에 직접 영향을 미칩니다.효율성: 큰 데이터를 복사하지 않고 참조만 전달하므로 메모리와 시간을 절약할 수 있습니다.직접 변경 가능성: 원본 데이터가 함수 내에서 변경될 수 있기 때문에, 데이터 변형이 필요한 경우에 유용합니다.사용 : 1) 함수 내부에서 여러 개의 값을 ..
개발자 취업 준비를 하면서, 코딩테스트를 보게 되는 순간들이 있는데, 간혹가다 Java로 언어가 제한되는 곳이 있다.(ex. 현대 오토에버 특정 직무). 낭패를 보지 않으려면 자바 감이 떨어지지 않게 준비를 항시 해야 될 거 같다. IntegerInteger.parseInt() 이 메소드는 문자열을 기본형 정수 (primitive type int)로 리턴한다. 문자열이 유효한 숫자를 포함하지 않는다면 NumberFormatException이 쓰로우 된다. 그렇기 때문에 문자열을 int로 바꿀때에는 항상 try-catch문으로 코드를 감싸서 이 익셉션을 처리해야 한다. Integer.parseInt() 를 써서 문자열을 int로 바꾸는 이 예시를 보자.https://school.programmers.co...
리스트에 순차적으로 접근해야 할 때 두개의 점의 위치를 기혹하면서 처리하는 알고리즘이다. 정렬되어 있는 두 리스트의 합집합에도 사용됨, 병합정렬(merge sort)의 counquer(정복)영역의 기초가 되기도 한다.예제 문제 - 특정한 합을 가지는 부분 연속 수열 찾기투포인터 알고리즘의 대표적인 문제입니다.어떤 숫자들의 리스트가 주어질 때, 해당 리스트의 연속 수열의 합이 특정 값을 가지는 것을 확인하는 문제입니다.시작점과 끝점이 첫번째 원소의 인덱스를 가리키도록 한다.(start, end = 0,0)현재 부분 합이 M과 같다면 카운트한다. (if sum[start:end] == M)현재 부분 합이 M보다 작다면 end를 1 증가시킨다. (end += 1)현재 부분 합이 M보다 크거나 같다면 start..