일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- over()
- 멀티태스킹
- spring security
- 멀티프로세싱
- 객체지향
- 달리기 경주 자바
- 다형성
- 입출력
- 티스토리챌린지
- 오버로딩
- spring security 커스텀
- 리눅스
- hackerrank
- authenticationprovider 설정
- 오블완
- 혼공얄코
- 로그인 핸들러 구현
- 오버라이딩
- SQL Mapper
- CPU
- 바탕화면 정리 자바
- 자바의정석
- userdetailsservice 설정
- 개인정보 수집 유효기간 자바
- 쿠키
- 자바의 정석
- java
- spring security 설정
- 캡슐화
- Today
- Total
목록전체 글 (112)
쉽게 쉽게
'혼자 공부하는 얄팍한 코딩 지식'을 읽으며 추가적으로 공부한 내용을 정리한 글입니다. 1. API란? API는 “Application Programming Interface”의 준말로 여러 프로그램들과 데이터베이스, 그리고 기능들의 상호 통신 방법을 규정하고 도와주는 매개체이다. 군대에서 사용하는 수신호, 자동차의 방향지시등 같이 일상에서도 약속된 규칙과 신호로 소통을 하는 경우가 많이 있다. 상당수의 소프트웨어에서도 약속된 신호로 소통을 진행하는 경우가 많으며 이때 사용되는 것이 API이다. 이때 프로그램마다 API 설계 방식이 다르면 개발자들은 새로운 서비스를 만들 때마다 새로운 API를 고안하거나 기존 API를 읽히는 데 어려움을 겪을 것이다. 그래서 보편적으로 공유되는 방식인 REST API를 ..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 입출력(I/O)이란? I/O는 Input과 Output의 약자로 입력과 출력을 의미한다. 즉 컴퓨터 내부 또는 외부의 장치와 프로그램 간의 데이터를 주고받는 것을 말한다. 입출력의 예를 들면 키보드로 데이터를 입력받거나, System.out.println()을 이용해서 출력하는 것이 있다. 데이터를 주고 받으려면 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림(stream)이라 한다.(데이터를 다뤘던 스트림과 이름만 같음) 입출력에서 스트림은 데이터를 운반하는 데 사용되는 연결통로다. 입력과 출력을 수행하려면 *입력 스트림과 출력스트림이 필요하다. 입력 스트림 : 대상으로부터 자료를 읽어들이는 스..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 스트림이란? 스트림은 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았다. 1. 스트림을 사용하는 이유 스트림을 사용하는 이유는 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 모두 같은 방식으로 다룰 수 있기 때문이다. 데이터를 다룰 때, 컬렉션이나 배열에 담고 for문과 Iterator를 이용했지만, 이러한 방식은 코드가 길고 재사용성이 떨어진다는 단점이 있다. 또한 데이터 소스마다 다른 방식으로 다뤄야 한다는 점도 있다. Collection이나 Iterator와 같은 인터페이스를 이용해서 표준화시키긴 했지만 각 컬렉션마다 같은 동작을 위해 다른 메서드를 사용하는 경우가 있다. 예를 들어..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 람다식이란? 메서드를 하나의 '식'으로 표현한 것 람다식은 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 함수를 람다식으로 표현하면 메서드의 이름이 필요 없기 때문에, 람다식은 *익명 함수(Anonymous Function)의 한 종류라고 볼 수 있다. ★ 람다식 사용배경 람다를 지원하기 전의 자바는 완전한 *명령형 프로그래밍이었다. 명령형 프로그래밍 : 클래스에서 메서드를 정의하고, 필요할 때 그 메서드를 호출하는 명령하여 동작한다. 명령형 프로그래밍을 기반으로 개발했던 개발자들은 개발하는 소프트웨어의 크기가 커짐에 따라, 복잡하게 엉켜있는 스파게티 코드를 유지보수하는 것이 매우 힘들다는 것을 깨닫게 되었다. ..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 쓰레드란 쓰레드를 설명하기 이전에 먼저 프로세스를 알아야 한다. 프로세스란 실행 중인 프로그램을 의미한다. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 이런 프로세스는 프로그램을 수행하는 데 필요한 데이터, 메모리 등의 자원 그리고 쓰레드로 구성되어 있다. OS에서 실행 중인 하나의 애플리케이션 즉 ctrl + alt + del창 작업 관리자에서 프로세스 탭에 올라와 있는 어플리케이션 하나를 하나의 프로세스라고 부른다. ex) Chrome 만약 우리가 크롬창을 더블클릭 누른다면(실행) 운영체제로부터 필요한 메모리를 할당받아 애플리케이션의 코드를 실행하는 것이 프로세스이다. 크롬을 2..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 지네릭스란? 다양한 타입의 객체들을 다루는 메서드나 켈렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 지네릭스의 용어 위와 같이 클래스를 만들 때 클래스 명 옆에 지네릭스를 붙이고 선언하면 이것을 지네릭 클래스라 한다. 그리고 이때 지네릭스에 들어가는 자리의 변수를 타입변수, 타입 매개변수라 한다. 그리고 타입변수로서 들어간 문자는 타입 문자라 한다. 는 타입 변수로 이 클래스로 객체를 생성할 때 해당 객체에 어느 자료형이든 저장 가능하단 뜻이다. (T가 아니더라도 상관없다. String이든 Integer든 뭐든 가능하다는 의미) 는 객체를 생성하고 이용할 때 어떤 타입인지 결정된다. 마지막으로 원시타입은 일반 클래스..
'혼자 공부하는 얄팍한 코딩 지식'을 읽으며 추가적으로 공부한 내용을 정리한 글입니다. 1. 쿠키와 세션을 사용하는 이유 웹 사이트를 이용할 때, HTTP 프로토콜은 클라이언트가 요청(Request)을 서버에 보내고, 서버는 클라이언트에게 적절한 응답(Response)을 주고 연결(Connection)을 끊는 특성이 있다. 이를 비연결지향(Connectionless) 특성이라 한다. 또한 커넥션을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하지 않는 특성이 있다. 이를 상태 없음(Stateless) 특성이라 한다. (한마디로 연결이 종료되면 원상태로 리셋!) 비연결지향이라는 특성 덕분에 커넥션을 유지하지 않기 때문에 서버 리소스 낭비가 줄어드는 것은 장점이지만, 연결정보가 없다는 것은 ..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. Arrays Arrays에는 배열을 다루는데 유용한 메서드가 정의되어 있다. copyOf(arr, arr.length) 길이만큼 배열 복사 copyOfRange(arr, from, to) from부터 to까지 복사(to는 범위에 포함x) fill(arr, 값) 배열의 모든 요소를 지정된 값으로 채움 setAll(arr, 함수형 인터페이스 or 람다식) 배열을 채울 함수형 인터페이스(math.random())을 매개변수로 sort(arr) 배열을 정렬 binarySearch(arr,위치) 배열에 저장된 요소를 검색해서 위치 반환(정렬된 상태야 올바른 결과,이진 검색으로 속도가 빠름) equals() 요소 비교 toString(..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 컬렉션 프레임웍(Collections Framework)이란? 데이터 군을 저장하는 클래스들을 표준화한 설계 다수의 데이터를 다루는 데 필요한 클래스들을 제공 컬렉션은 다수의 요소를 하나의 그룹으로 묶어 효율적으로 저장하고, 관리할 수 있는 기능을 제공하는 일종의 컨테이너이다. 배열은 크기가 고정되어 있는데에 반해, 컬렉션 프레임워크는 가변적인 크기를 갖는 (Resizable) 등의 특징을 갖는다. 또한 데이터 삽입, 탐색, 정렬 등 편리한 API 를 다수 제공한다. 이런 이점으로 개발자는 배열보다는 적절한 컬렉션 클래스를 선택해 사용하는 것이 권장된다. ★ 컬렉션 프레임워크의 장점 (1) List, Queue, Set, M..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. java.time 패키지 JDK1.8이전에는 Date와 Calendar를 사용했지만, 1.8이후에는 java.time패키지가 추가되었다. ★ Calendar와 차이점 java.time패키지가 가진 클래스들은 '불변'하다는 특징을 가지고 있다. 그래서 날짜나 시간을 변경하는 메서드들은 기존의 객체를 변경하는 대신 항상 변경된 새로운 객체를 반환한다. 기존 Calendar는 변경가능하므로, *멀티쓰레드 환경에서 안전하지 못하다. 멀티쓰레드 환경이란 멀티쓰레드 환경에서는 동시에 여러 쓰레드가 같은 객체에 접근할 수 있기 때문에 변경 가능한 객체는 데이터가 잘못될 가능성이 있으므로 이를 쓰레드에 안전하지 않다고 한다. 2. 핵심 클..