일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 정적 리소스
- Application Runner
- 백트래킹
- WebApplication Type
- 알고리즘
- @Profile
- application.properties
- EnableAutoConfiguration
- JsonSerializer
- 스프링 부트
- rest api
- 브루트포스
- 리소스핸들러
- AuthenticationPrincipal
- 외부설정
- Application Event
- HttpMessageConverters
- Spring Security
- 백준
- 리소스 서버
- HATEOAS
- JPA
- 다익스트라
- webjar
- cors
- Application Argument
- OAuth2
- @ConfigurationProperties
- 스프링부트
- 백기선
- Today
- Total
목록분류 전체보기 (114)
아카이브
● Call by Value : 값에 의한 호출● Call by Reference : 참조에 의한 호출"Java는 Call by Value 이다"- Java에서 원시타입은 값이 복사돼서 전달되고, 참조(주소값)도 값이 복사돼서 전달 됌- 참조를 직접 전달하는 것이 아닌, 참조 값(Value) 자체를 복사해서 전달
Java에서 다형성을 지원하는 2가지 방법 1. Overriding- 상속에서 나온 개념- 부모 클래스의 메소드를 자식 클래스에서 재정의 - 부모 클래스의 기능을 확장할 때 사용 - 메소드 이름, 매개변수, 타입, 반환 타입 모두 동일해야 함- static 메소드는 불허 2. Overloading- 같은 이름의 메소드를 여러 개 정의- 매개변수 타입이나 개수가 달라야 함- 메소드의 재활용성을 높이고, 다양한 유형의 요청을 처리할 수 있음
String 과 StringBuffer/StringBuilder- String 객체는 immutable (초기화 이후 값을 변경할 수 없음)- String 연산 시, 기존의 객체를 변경하지 않고 새로운 String 객체를 만들어야 함- StringBuffer/StringBuilder는 새로운 객체를 생성하지 않고 동일한 객체를 지속적으로 변경할 수 있음● StringBuffer는 Thread-safe, StringBuilder는 해당 없음- String 연산 시 JVM이 String을 StringBuffer로 변환하기 때문에 오버헤드 발생 (String -> StringBuffer -> String)
Garbage- 응용프로그램에서 더 이상 사용되지 않는 메모리- 무효영역- new 연산자를 이용하여 시스템으로부터 할당받아 사용되다가 더 이상 사용되지 않는 객체나 배열 메모리 등 - 더 이상 사용되지 않는다 = 객체나 배열을 가리키는 레퍼런스가 없다- uncreachable 객체 (레퍼런스가 null이거나 메소드 내에서 (stack에) 생성된 객체) 가 대상Garbage Collection- Garbage를 회수하여 사용할 수 있는 메모리 공간을 늘리는 것- Garbage Collector 가 수행- JVM은 Garbage Collector 역할을 수행하는 Garbage Collection Thread를 갖고 있음- JVM 판단하에 동작하므로, 사용자가 강제할 수 없지만 System.gc() 혹은 Ru..
Wrapper Class를 사용하는 이유- 기본 자료형에 대해 객체로서 인식되도록 '포장'을 하기 위함1) 매개변수로 객체가 요구될 때2) 기본형 값이 아닌 객체로 저장해야 할 때3) 객체간의 비교가 필요할 때- 필요시 컴파일러가 자동으로 수행하기 때문에 이를 'autoboxing'이라고 한다Integer i = new Integer(10); -> Integer i = 10; //오토박싱(autoboxing)int i1 = i.intValue(); -> int i1 = i; //언박싱(unboxing)
1. 공통점- index를 이용해 바로 접근가능- 중복 허용- 순서가 존재- 데이터를 추가하면 크기가 자동으로 늘어남●Vector : capacity를 초과하면 100% 증가●ArrayList : 50% 증가 2. 차이점- 동기화●Vector : 내부적으로 자동으로 동기화 처리 복수의 thread로 부터 추가/삭제가 들어와도 한번에 하나의 thread만 처리하도록 동기화를 보장함 단일 thread의 경우 ArrayList보다 성능이 저하되는 이슈가 존재 (무조건 동기화처리를 하기때문) 거의 사용하지 않는다●ArrayList : 동기화를 보장하지 않음 별도로 동기화 처리를 할 수 있음 List list = Collections.synchronizedList(new ArrayList());
static - 변수, 함수가 class에 종속non static - 변수, 함수가 class가 아닌 object(instance)에 종속1. static이 붙은 변수, 메소드를 instance 없이 사용가능한 이유- instance의 모태가 되는 class가 메모리에 올라갈 때 class의 member로 메모리에 같이 올라가기 때문 2. static 메소드에서 instance 변수를 사용할 수 없는 이유- static 사용 시점에 instance가 생성되어 있는지 알 수 없기 때문 3. static의 사용 이유- instance를 생성하지 않고 사용할 수 있기 때문에 속도가 빠르다- class 설계 시 멤버 변수 중에 모든 instance에서 공통으로 사용하는 부분을 static으로- class 설계 ..
LAN ( Local Area Network )- 집, 사무실, 학교 등의 건물과 같은 가까운 지역을 한데 묶는 컴퓨터 네트워크- 통신 주체인 자신이 포함된 지역 네트워크- 1대1이 아닌 공유기나 스위치 등을 이용해서 연결- 이더넷 프로토콜을 사용 (TCP/IP)● Ethernet : 10Mbps● FastEthernet : 100Mbps● GigabitEthernet : 1,000MbpsWAN ( Wide Area Network )- 자신이 포함되지 않은 외부 네트워크 - LAN과 LAN을 연결하는 네트워크- 라우터를 통해 연결● 라우터 ? 서로 다른 네트워크를 연결하며, 로컬에서 리모트로 원거리 데이터 전송을 담당- IP, HDLC, PPP, Ethernet 프로토콜 등을 사용● HDLC : High..
REST ( REpresentational State Transfer )- 소프트웨어 아키텍처 스타일- REST 원리를 따르는 시스템을 RESTful이라고 지칭- 직관적으로 웹에 있는 자원들을 HTTP를 활용하여 자원에 접근하는 것- 웹 상의 자료를 HTTP 위에서 SOAP나 쿠키를 통한 세션 트래킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스- ROA(Resource Oriented Architecture, 자원 지향 아키텍처) 를 실현하기 위한 기술● SOUP ? XML 기반의 메시지를 네트워크 상에서 교환하는 프로토콜 웹 서비스에서 기본적인 메시지를 전달하는 기반 SOA (Service Oriented Architecture, 서비스 지향 아키텍처) 를 실현하기 위한 기술 단점..
HTTP ( HyperText Transfer Protocol )- 동작 순서 : TCP -> HTTP- WWW상에서 정보를 주고받는 Protocol- 클라이언트(웹브라우저)가 서버에 HTTP를 통해 정보를 요청하고 서버가 응답- Client와 Server간의 자원을 주고 받을 때 쓰는 통신 규약- 주로 HTML 문서를 주고받는 데에 쓰임- HTML은 텍스트이기 때문에 보안에 취약함- 패킷을 캡쳐하면 그대로 노출HTTPS ( HyperText Transfer Protocol over Sesure Socket Layer )- 동작 순서 : TCP -> SSL -> HTTP- HTTP의 보안이 강화된 버전- 소켓 통신에서 일반 텍스트를 이용하는 대신에, SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화..