일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 엔티티설계
- 업캐스팅
- 웹스토리지 사용법
- 기초
- git commit취소
- qclass
- 파비콘에러
- 네트워크
- 오버라이딩
- 스프링부트
- 메소드
- 생성자
- JPA
- 상속
- MySQL
- 레포지토리설계
- 자바
- java기초
- 코린이
- http
- 0으로변환
- java
- 스프링시큐리티
- 다운캐스팅
- static
- 형변환
- 프로젝트
- 웹동작방식
- Git
- 한번에insert하기
- Today
- Total
목록전체 글 (62)
딱콩이의 봄

DI(Dependency Injection) 1.DI DI는 Spring 프레임워크에서 지원하는 IoC의 형태입니다. 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로, 객체를 직접 생성하지 않고 외부에서 생성한 후 주입 시켜주는 방식입니다. DI는 클래스 사이의 의존관계를 빈 설정 정보를 바탕으로 컨테이너가 자동적으로 연결해주는 것을 말합니다. 개발자들은 제어를 담당할 필요 없이 빈 설정 파일에 의존관계가 필요하다는 정보만 추가해주면 됩니다. 컨테이너가 실행 흐름의 주체가 되어 애플리케이션 코드에 의존관계를 주입해주는 것 2.DI의 특징 의존성 주입은 IoC 개념을 바탕으로 합니다. 클래스가 외부로부터 의존성을 가져야 합니다. 3.DI의 3가지 방법 Constructor Injec..

프레임워크가 뭘까요? 원하는 기능, 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대를 의미합니다. 프레임워크의 예 java 서버 개발에 사용되는 Spring Python 서버 개발에 사용되는 Django, Flask 안드로이드 앱 개발에 사용되는 Android 라이브러리는 뭘까요? 특정 기능을 모아둔 코드, 함수들의 집합이며 코드 작성 시 활용 가능한 도구들을 의미합니다. 그 기능을 사용하기 위해 불러와서 호출하는 방식을 생각하면 됩니다. 라이브러리의 예 웹에서 사용자 인터페이스 개발에 사용되는React.js HTML의 클라이언트 사이조작을 단순화하는 JQuery 라이브러리와 프레임워크의 차이는 뭘까요? 라이브러리와 프레임워크의 차이는 제어흐름에 대한 주도성이 누구..

MVC란 Model-View-Controller의 약자로 애플리케이션을 세 가지 역할로 구분한 개발 방법입니다. 아래의 그림처럼 사용자가 Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕으로 View를 통해 시각적 표현을 제어하여 사용자에게 전달하게 됩니다. 모델(MODEL) 데이터를 가진 객체를 모델이라고 지칭합니다. 데이터는 내부의 상태에 대한 정보를 가질 수도 있고, 모델을 표현하는 이름 속성으로 가질 수 있습니다. 비즈니스 로직을 처리한 후 모델의 변경사항을 컨트롤러와 뷰에 전달하고, 모델의 변경사항을 전달함으로써 뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가, 제거, 수정할 수 있습니다. 모델의..

1.Stateless 프로토콜 클라이언트의 상태 정보를 가지지 않는 서버 처리 방식입니다. 클라이언트와 첫 번째 통신에서 데이터를 주고받았다 해도, 두 번째 통신에서 이전 데이터를 유지하지 않습니다. 2.Connectionless프로토콜 클라이언트가 서버에 요청을 했을 때, 그 요청에 맞는 응답을 보낸 후 연결을 끊는 처리 방식입니다.

세션(Session) 클라이언트가 아닌 서버에 저장하는 쿠키입니다. 주로 유출되어선 안될 중요한 데이터가 저장됩니다. 유효기간 설정이 가능하지만 기본적으로 브라우저를 종료할 때까지 유지됩니다. 쿠키보다 느리지만 보안성이 높습니다. 세션 통신 방법 1.클라이언트가 서버에 접속 시, 세션 ID를 발급합니다. 2. 서버에서는 클라이언트로 발급해준 세션 ID를 쿠키를 이용해서 저장합니다. 3. 클라이언트는 다시 페이지에 접속할 때 쿠키에 저장된 세션 ID를 서버에 전달합니다. 4. 서버는 Request Header에 쿠키 정보(세션 ID)로 클라이언트를 판별합니다. 쿠키(Cookie) 웹사이트 접속 시 사용자의 브라우저에 저장되는 작은 텍스트 파일입니다. 서버와 통신 시 HTTP 헤더에 포함됩니다. 이름, 값 ..

리스트는 모든 프로그래밍 언어에서 가장 유용한 자료구조 중 하나입니다. LinkedList와 ArrayList는 모두 java에서 제공하는 List 인터페이스를 구현한 Collection 구현체입니다. 하지만 인터페이스만 같을 뿐 내부적으로 동작하는 방식은 다르다고 합니다! ArrayList ArrayList는 내부적으로 데이터를 배열에서 관리하며 데이터의 추가, 삭제를 위해 임시 배열을 생성해 데이터를 복사하는 방법을 사용하고 있습니다. 대량의 자료를 추가/삭제하는 경우에는 그만큼 데이터의 복사가 많이 일어나게 되어 성능 저하를 일으킬 수 있습니다. 반면 각 데이터는 인덱스를 가지고 있기 때문에 한 번에 참조가 가능해 데이터의 검색에는 유리한 구현체입니다. LinkedList LinkedList는 내부..

HashTable Key와 Value에 Null을 허용하지 않습니다. 동기화를 보장하며 thread-safe 하기 때문에 멀티 스레드를 사용할 수 있습니다. 데이터를 다루는 메서드(get(), put(), remove() 등 )에 synchronized 키워드가 붙어있습니다. 해당 키워드는 메서드를 호출하기 전에 스레드 간 동기화 락을 겁니다. 그래서 멀티 스레드 환경에서도 데이터의 무결성을 보장합니다. 하지만 스레드 간 동기화 락은 매우 느린 동작이라는 단점이 있습니다. HashMap key값으로 Null을 허용하고, 동기화를 보장하지 않습니다. HashMap은 Thread-safe하지 않아, 싱글 쓰레드 환경에서 사용하는 게 좋습니다. 동기화를 처리하지 않기 때문에 데이터를 탐색하는 속도가 빠릅니다...

Hash의 정의 배열은 검색 속도가 빠르나 데이터 삽입/삭제 시 속도가 느립니다. LinkedList는 삽입 삭제 시 인근 노드의 참조 값만 수정해서 속도가 빠르나 순회 검색만 가능하여 데이터가 많아질수록 속도가 느려집니다. 이러한 한계를 극복하기 위해 제시된 방법이 Hash입니다. 특징 내부적으로 배열을 사용하여 데이터를 저장해 검색 속도가 빠릅니다. 데이터의 삽입/삭제 시 해시 알고리즘을 이용하여 데이터와 연관된 고유한 숫자를 만들어 인덱스로 사용합니다. 해시가 내부적으로 사용하는 배열을 HashTable이라고 하며 크기에 따라서 성능 차이가 납니다. Hash Method(해시 메서드) 해시는 HashTable을 사용하여 데이터를 저장하는데, 이때 인덱스를 구하기 위해 해시 메서드를 사용하여 고유의 ..