일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA예제
- 알고리즘공부
- 스프링부트
- 플러터 개발
- 자료구조공부
- 코테공부
- 플러터 공부
- 스프링
- JPA
- nestjs스터디
- JPA공부
- Kafka
- nestjs공부
- 기술면접공부
- 자바공부
- Flutter
- 스프링 공부
- querydsl
- 프로그래머스
- DDD
- 스프링부트공부
- JPA스터디
- 코테준비
- 카프카
- K8S
- Axon framework
- 기술공부
- JPA 공부
- 스프링공부
- nestjs
- Today
- Total
목록[Computer Science] (42)
DevBoi
DTO, DAO , VO 차이 VO란, Value Object 이며, 비즈니스 값을 가져올때 사용하며, 보통 값을 수정할 수 없는 것으로 간주한다. DTO와 혼용해서 쓰기도 한다. DTO란, Data Transfer Object 줄임말로, VO와 같이 값을 갖고있는 객체이다. Vo와 차이점은 DB로 치면 하나의 인스턴스로, 데이터 핸들링에 사용되는 객체이다. DTO를 통해, 데이터를 전달 할 수 있다. DAO란, Data Access Object 의 줄임말로, 실제 Db에 접속하는 객체이다. Service 와 DB사이에서 가져온 데이터를 엔티티로 변환시켜 가져온다. 대부분은 CRUD API를 제공 자바 데이터 타입 1) Primitive type 기본형 변수에 값 자체를 저장, boolean,char,i..
1. 자바 컴파일 과정 개발자가 자바 소스코드를 작성하고, 자바 컴파일러가 자바소스파일을 컴파일한다. 컴파일을 하게 되면, class파일이 생성되어, 아직 JVM만 이해할수 있는 코드가 된다. 컴파일된 바이크 코드를 JVM의 ClassLoader에게 전달을한다. ClassLoader는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크하여,JVM 메모리에 올린다. ClassLoader 세부 동작. 1. 로드 : 클래스 파일을 가져와서 JVM 메모리에 로드한다. 2. 검증 : 자바 언어 명세 및 JVM 명세에 명시된 대로 구성되어있는지 검사 3. 준비 : 클래스가 필요로하는 메모리를 할당한다. 4. 분석 : 클래스의 상수 풀 내 모든 심볼릭 레퍼런스를 다이렉트 레퍼런스로 변경한다. 5. 초기화 : 클래스 변..
1. 스프링 MVC 웹 요청 처리과정 - 클라이언트가 서버에 어떤 요청을 하면, DispathcherServlet이라는 클래스가 요청을 가로챈다. - 가로챈 DispathcherServlet 은 매핑값을 찾아, Controller에 요청을 처리할 메소드에 도달한다. - Controller에서 서비스에 보내고, DB접근이 필요하면 DAO에게 위임한다. - DAO는 DB접근 및 VO값으로 return받아, 서비스로 돌려준다. - 모든 로직을 끝낸 서비스는 컨트롤러에 넘기고 컨트롤러는 Model에 넣어 어떤 View로 넣어줄지 담아, DispathcherServlet 에 보낸다. - DispathcerServlet은 응답 View를 찾고, 로직처리를한다. 2. call by value, call by refe..
1. DB timeout connection, socket timeout Socket timeout 소켓타임마웃은 클라이언트에서 서버에 대한 Connection에 대한 데이터를 받는 것 까지의 Timeout을 의미한다. 쉽게말하면, 3way handshake로, 처음에 클라이언트와 서버간의 커넥션을 맺고 그다음에는 데이터를 전송하기위한 패킷들이 여러개로 나눠져서 전송이 되는데, 여기서 Gap이 발생해서 생기는 Timeout이 소켓 타임아웃이다. 2. Runtime Exception, Exception 1.Runtime Exception은 Try, catch로 잡지않아도 컴파일은 가능하다. 하지만 실행할때 에러가 난다, 배열의 크기나 index 문제 null Exception일때 문제가 발생한다. 2.Ex..
1. 오버라이드 오버로딩 차이 둘다 메소드 구현 방식에 대한 개념 오버로딩 : 생성자 오버로딩, 메소드 오버로딩이 존재한다. (파라미터만 다르고 메소드 이름은 같은 것) 오버라이드 : 상속받은 class에서, 같은 메소드의 본문만 다르게 정의 하여 구현하는 것이다. (부모클래스의 메소드 재정의) 2. $,#차이 Mybatis #는PreparedStatement를 의미한다. select id from et_mbr_base where id = #{id} 라고하면, 해당 Oracle로 select id from et_mbr_base where id = ? 가 넘어가게 되고 실제 수행은 select id from test where id = 'devboi'가 된다. $는 Statement를 의미한다. selec..
가장 기초이기도 하지만 막상 물어보면... 주저리주저리 얘기할것같다. 동기 : 동시에 일어나는 것, 요청하면 바로 시간이 얼마나 걸리든 자리에서 바로 결과가 주어진다 비동기 : 동시에 일어나지 않는 것, 요청과 결과가 동시에 일어나지 않을 것이라는 약속이다. 동기방식 : 매우 간단하고 직관적이지만, 결과전에는 아무것도 못하고 대기 비동기 : 동기보다는 복잡하지만, 결과 전에 다른 작업이 가능하여, 자원을 효율적으로 사용이 가능하다. 쉽게말하면, form으로 페이지에 대한 값을 받아서 jstl로 세팅을 하거나, 페이지 이동간의 데이터 세팅및 결과 처리에 대한건 동기방식이고 비동기 방식은 다운로드 요청, 혹은 실시간 시간 별 이벤트 방식 혹은 처리 방식 등등 비동기 방식으로 쓰일수 있다. 비동기 방식으로 제..
많이들 사용하는 쿠키와, 세션 주로 로그인 및 회원 처리에서 많이 사용하는데, 해당 두가지 개념에 대해서 명확하게 익히고 가자. 우선 쿠키와 세션 사용이유 HTTP프로토콜의 특징이자 약점을 보완하기 위해서 사용한다. Http 프로토콜 환경에서는 서버는 클라이언트가 누구인지 확인해야한다. 그이유는, Http 서버는 connectionless, sateless하기 때문이다. 이게무슨 말이냐면, connectionless 클라이언트가 요청을 해서 서버가 response를 하게 되면, 바로 끊어진다. 헤더에 keep-alive라는 값을 줘서, 커넥션을 재활용한다. stateless는 뭘까, 통신이 끝나면, 상태를 유지하지 않는 특성, 연결을 끊는 순간, 상태정보는 유지하지 않는다 -> 그러면 회원이 계속 접속중..
Redis라는 것이 무엇일까. 쓰고는 있는데 정확히 어떤 것들이 좋은지, 나쁜지 이걸 진짜 알아야된다. 특정 기술을 쓸때, 이 기술에 대한 장단점을 모르고 쓰다보면 그리고 그 쓰임이 쌓이다 보면, 굉장히 성능에 대한 저하들이 생겨나게된다. 우선 redis 는 remote dictiionary server이다. 이름처럼 캐시이고, 많은 장점들이 있다. 1. 처리속도가 빠르다. 2. 리스트, 배열 형식의 데이터 처리에 특화 3. 메모리 활용하면서, 영속적인 데이터 보존 가능 (메모리를 사용하면 속도는 빠르지만, 영속적인 데이터 보존이 불가했었는데, 이러한 것들을 전부 커버업한다/) 4. 여러대의 서버 구성 하둡이나 빅데이터 처리 기 같이 master-slave 형태의 구성으로 한다. 또한 emecached ..
스프링 이나 다른 프로그래밍을 보게 되면, Interface를 만들고, 이를 구현하는 Impl 파일을 볼수있다. 이걸 왜 만들까? 사실 Interface의 사용용도를 모르는 사람 입장에서는 이해가 안될 것이다. 왜 Service도만들고 ServiceImpl을 만들어서...두번쓰는거지...? 답은 간단하다. 트랜잭션 처리 및 JDBC 종속성 해제 때문이다. 스프링 뿐 아니라 모든 프로그래밍 방법론에서 다루고있는 말이다. 각 프레임 워크에서 기본으로 제공하는 Interface에서는 제일 상위에 트랜잭션 처리관련 interface가 있고 이를 상속 받아서, interface를 구현, 및 하위 몸체 코드에서 이를 동작시킨다. 즉 접근 방식은 하나의 방식으로 통일하고, 접근에 쓰이는 로직 코드만 분리를 하기 위함..
Stateless란 뭘까 요청, 응답에 대한 Stream연결이 아닌, 한번 통신하고 ㅂㅂ처리하는것이다. 서버 입장에서는 굉장히 부하가 적음, connection close를 바로 해버리기 때문에 (http 방식) 그럼 반대로, stateful 은 뭘까... 연결이 지속이 된것이다. 맨처음에 인증하고, 그뒤에는 세션으로 값을 저장해서, 그 값을보고 쭉쭉 준다. 쉽게, TCP, UDP랑 살짝 비슷한 방식이라고 생각하면된다. Stateless에서 세션 처리는 스프링 시큐리티로 처리를한다고 하는데... 이건 나중에 해봐야겠다 그리구 MIME 타입이란???? 뭘까...?? form에서 , 혹은 ajax에서 text/html형태로 혹은 application/json 형태로 보낼때가 있다 컨텐츠들이 multi par..