일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- openAI API
- spring ai
- UNICON2023
- 오블완
- AWS
- Spring boot
- EC2
- 42서울
- 인프라
- 프로그래밍
- UNICON
- 도커
- 프리티어
- 게임개발동아리
- 전국대학생게임개발동아리연합회
- 개발공부
- 생활코딩
- 캡스톤디자인프로젝트
- Redis
- UNIDEV
- Route53
- 스프링부트
- 티스토리챌린지
- CICD
- bastion host
- 체크인미팅
- 프롬프트엔지니어링
- NAT gateway
- 라피신
- 백엔드개발자
- Today
- Total
목록Study (108)
Hyun's Wonderwall
11장: 동시성아이템 82. 스레드 안전성 수준을 문서화하라'한 메서드를 여러 스레드가 동시에 호출할 때 그 메서드가 어떻게 동작하느냐': 해당 클래스의 클라이언트에게 중요한 정보. 가정해서 사용했다가 틀리면 심각한 오류로 이어짐.모든 클래스가 자신의 스레드 안전성 정보를 명확히 문서화해야 한다.synchronized 한정자는 문서화와 관련X ( 'API 문서에 synchronized 한정자가 보이는 메서드는 스레드 안전하다?' -> X. javadoc이 기본 옵션에서 생성한 API문서에는 synchronized 한정자가 포함되지 않는다. 메서드 선언에 synchronized 한정자를 선언할지는 구현 이슈일 뿐 API에 속하지 않아, 따라서 이것만으로 메서드가 스레드 안전하다고 믿기 어렵다.) 멀티스레드..
9장: 일반적인 프로그래밍 원칙아이템 64. 객체는 인터페이스를 사용해 참조하라인터페이스를 타입으로 사용하는 습관을 길러두면 프로그램이 훨씬 유연해질 수 있다. 나중에 구현 클래스를 교체하기 쉬움.- 구현 타입을 바꾸려 하는 동기는? 새 구현 타입이 원래 것보다 성능이 좋거나 신기능을 제공...적합한 인터페이스가 없다면 (당연히 클래스로 참조해야 하는 상황) -> 클래스의 계층구조 중 필요한 기능을 만족하는 가장 상위의 클래스를 타입으로 사용하자. 아이템 65. 리플렉션보다는 인터페이스를 사용하라리플렉션 기능을 이용하면 프로그램에서 임의의 클래스에 접근 가능. 컴파일 당시 존재하지 않던 클래스도 이용할 수 있다.- (단점: 컴파일타임 타입 검사 이점 누릴 수 x, 코드가 지저분하고 장황해짐, 성능 떨어짐..
8장 메서드아이템 55. 옵셔널 반환은 신중히 하라감나옵셔널은 예외 검사와 취지가 비슷. 결과가 없을 수 있으며, 클라이언트가 이 상황을 특별하게 처리해야 할 때 사용한다.반환값 이외의 용도로 쓰는 경우는 드물다.Stream>. Optional의 stream().컨테이너 타입은 옵셔널로 감싸면 안 된다. 빈 List를 반환하는 게 좋다.옵셔널 반환에는 성능 저하가 뒤따라, 성능에 민감한 메서드라면 null을 반환하거나 예외를 던지는 게 나을 수 있다.아이템 56. 공개된 API 요소에는 항상 문서화 주석을 작성하라API를 올바르게 문서화하려면 공개된 모든 클래스, 인터페이스, 메서드, 필드 선언에 문서화 주석을 ㅏㄷㄹ아야 한다.메서드용 문서화 주석: 해당 메서드와 클라이언트 사이의 규약을 명료히 기술요약..
7장 람다와 스트림아이템 46. 스트림에서는 부작용 없는 함수를 사용하라스트림 패러다임의 핵심: 계산을 일련의 변환으로 재구성.- 각 변환 단계는 가능한 한 이전 단계의 결과를 받아 처리하는 순수 함수여야 한다. - 순수 함수: 오직 입력만이 결과에 영향을 주는 함수. 다른 가변 상태를 참조하지 않고, 함수 스스로도 다른 상태를 변경하지 x - 이렇게 하려면 스트림 연산에 건네지는 함수 객체가 모두 side effect이 없어야 한다.forEach 연산은 스트림 계산 결과를 보고할 때만 사용하고, 계산 자체에 쓰지 말자.- collect: 축소 전략을 캡슐화한 블랙박스 객체. 스트림의 원소들을 객체 하나에 취합함. 수집기가 생성하는 객체는 일반적으로 컬렉션.- 수집기를 사용하면 스트림의 원소를 손..

1520번: 내리막 길https://www.acmicpc.net/problem/1520 문제여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으며, 각 지점 사이의 이동은 지도에서 상하좌우 이웃한 곳끼리만 가능하다.현재 제일 왼쪽 위 칸이 나타내는 지점에 있는 세준이는 제일 오른쪽 아래 칸이 나타내는 지점으로 가려고 한다. 그런데 가능한 힘을 적게 들이고 싶어 항상 높이가 더 낮은 지점으로만 이동하여 목표 지점까지 가고자 한다. 위와 같은 지도에서는 다음과 같은 세 가지 경로가 가능하다. 지도가 주어질 때 이와 같이 제일 왼쪽 위 지점에서 출발하여 제일 오른쪽 아래 지점..
2240번: 자두나무 https://www.acmicpc.net/problem/2240 문제자두는 자두를 좋아한다. 그래서 집에 자두나무를 심어두고, 여기서 열리는 자두를 먹고는 한다. 하지만 자두는 키가 작아서 자두를 따먹지는 못하고, 자두가 떨어질 때까지 기다린 다음에 떨어지는 자두를 받아서 먹고는 한다. 자두를 잡을 때에는 자두가 허공에 있을 때 잡아야 하는데, 이는 자두가 말랑말랑하여 바닥에 떨어지면 못 먹을 정도로 뭉개지기 때문이다.매 초마다, 두 개의 나무 중 하나의 나무에서 열매가 떨어지게 된다. 만약 열매가 떨어지는 순간, 자두가 그 나무의 아래에 서 있으면 자두는 그 열매를 받아먹을 수 있다. 두 개의 나무는 그다지 멀리 떨어져 있지 않기 때문에, 자두는 하나의 나무 아래에 서 있다가 다..
14501번: 퇴사https://www.acmicpc.net/problem/14501 문제상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다.오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다.백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다.각각의 상담은 상담을 완료하는데 걸리는 기간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다.N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일2일3일4일5일6일7일Ti3511242Pi102010201540200 1일에 잡혀있는 상담은 총 3일이 걸리며, 상담했을 때 받을 수 있는 금액은 10이다. 5일에 잡혀있는 상담은 총 2일..
1103번: 게임https://www.acmicpc.net/problem/1103 문제형택이는 1부터 9까지의 숫자와, 구멍이 있는 직사각형 보드에서 재밌는 게임을 한다.일단 보드의 가장 왼쪽 위에 동전을 하나 올려놓는다. 그다음에 다음과 같이 동전을 움직인다.동전이 있는 곳에 쓰여 있는 숫자 X를 본다.위, 아래, 왼쪽, 오른쪽 방향 중에 한가지를 고른다.동전을 위에서 고른 방향으로 X만큼 움직인다. 이때, 중간에 있는 구멍은 무시한다.만약 동전이 구멍에 빠지거나, 보드의 바깥으로 나간다면 게임은 종료된다. 형택이는 이 재밌는 게임을 되도록이면 오래 하고 싶다.보드의 상태가 주어졌을 때, 형택이가 최대 몇 번 동전을 움직일 수 있는지 구하는 프로그램을 작성하시오.입력줄에 보드의 세로 크기 N과 가로 크..