| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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 | 
- AWS
 - 생활코딩
 - 전국대학생게임개발동아리연합회
 - 42서울
 - 캡스톤디자인프로젝트
 - EC2
 - 인프라
 - 티스토리챌린지
 - 체크인미팅
 - 프리티어
 - 게임개발동아리
 - 도커
 - 스프링부트
 - NAT gateway
 - 개발공부
 - 라피신
 - bastion host
 - openAI API
 - 프로그래밍
 - 프롬프트엔지니어링
 - spring ai
 - UNICON2023
 - CICD
 - Route53
 - UNICON
 - 오블완
 - Redis
 - Spring boot
 - UNIDEV
 - 백엔드개발자
 
- Today
 
- Total
 
목록전체 글 (186)
Hyun's Wonderwall
06. 탐색탐색: 주어진 데이터에서 자신이 원하는 데이터를 찾아내는 알고리즘. 주어진 데이터의 성질(정렬/비정렬)에 따라 적절한 탐색 알고리즘을 선택하는 것이 중요, 직접 구현해 원리를 완벽하게 이해해야 한다.그래프를 자주 이용한다.( c.f. [알고리즘] 완전탐색 기법 https://velog.io/@717lumos/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%99%84%EC%A0%84%ED%83%90%EC%83%89-%EA%B8%B0%EB%B2%95 ) 06-1. 깊이 우선 탐색DFS: 그래프 완전 탐색 기법 중 하나.- 특징: 재귀 함수로 구현, 스택 자료구조 이용- 시간 복잡도: O(V+E)- 실제 구현 시 재귀 함수를 이용하므로 스택 오버플로우에 유의해야 한다.- D..
네트워크 기초네트워크: 노드(서버·라우터·스위치 등)와 링크(유선·무선)가 연결된 구조로 자원 공유를 목표로 함.트래픽: 특정 시점에 흐르는 데이터 총량 (단위 bps).처리량: 성공적으로 전송된 데이터량 → 트래픽 처리 성능 지표.대역폭: 일정 시간 동안 흐를 수 있는 최대 비트 수(=최대 처리용량). 대역폭↑ → 서비스 속도↑.RTT: 왕복지연시간. 송신~수신확인까지 걸리는 시간.네트워크 토폴로지버스형: 하나의 회선에 모든 노드 연결. 설치 간단·저비용 / 회선 장애 시 전체 영향.스타형: 중앙 노드(허브·스위치) 중심 별모양 연결. 보안관리 용이 / 중앙노드 장애 시 전체 마비.트리형: 계층 구조. 리프노드 확장 용이 / 루트노드 장애 시 전체 영향.링형: 노드들이 고리 형태로 연결. 토큰 기반 충..
[디자인패턴의 소개][디자인패턴의 의의]프로그램 설계 시 반복적 문제를 객체 간 관계를 이용해 해결하도록 정의된 규약.라이브러리·프레임워크 설계의 기초 원리로 사용됨.패턴 학습을 통해 문제 해결력 및 팀 내 의사소통 효율 향상.[디자인패턴의 종류]생성패턴: 객체 생성 규약ex) 싱글톤, 팩토리, 추상팩토리, 빌더, 프로토타입 구조패턴: 클래스·객체 구조 설계 규약ex) 프록시, 어댑터, 브리지, 복합체, 데코레이터, 퍼사드, 플라이웨이트 행동패턴: 객체 간 알고리즘·책임 할당 규약ex) 이터레이터, 옵저버, 전략, 책임연쇄, 커맨드, 중재자, 메멘토, 상태, 템플릿메서드, 비지터(추가 예: Flux, MVC, MVVM 등)[라이브러리와 프레임워크의 차이]공통점: 재사용 가능한 기능을 모듈화한 구성 요..
[데이터교환형식 #1. JSON과 직렬화와 역직렬화]JSON(JavaScript Object Notation): Javascript 객체 문법으로 구조화된 데이터 교환형식.- 프로그래밍 언어와 플랫폼에 독립적 -> 서로 다른 시스템간에 데이터를 교환하기 좋음. - 여러 언어에서 객체, 해시테이블, 딕셔너리 등으로 변환되어 쓰임. (ex. javascript에서는 javascript object, python에서는 dict)- 주로 API 반환 형태, 시스템 구성 설정 파일에 활용Javascript 객체 문법: 키(key)와 값(value)으로 구성.- 이미 존재하는 키 중복 선언 시 나중에 선언한 해당 키에 대응한 값이 덮어씌워짐.- 객체 문법 뿐 아니라 단순 배열, 문자열도 표현 가능 (ex. [1, ..
1655번: 가운데를 말해요https://www.acmicpc.net/problem/1655 문제백준이는 동생에게 "가운데를 말해요" 게임을 가르쳐주고 있다. 백준이가 정수를 하나씩 외칠때마다 동생은 지금까지 백준이가 말한 수 중에서 중간값을 말해야 한다. 만약, 그동안 백준이가 외친 수의 개수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말해야 한다.예를 들어 백준이가 동생에게 1, 5, 2, 10, -99, 7, 5를 순서대로 외쳤다고 하면, 동생은 1, 1, 2, 2, 2, 2, 5를 차례대로 말해야 한다. 백준이가 외치는 수가 주어졌을 때, 동생이 말해야 하는 수를 구하는 프로그램을 작성하시오.입력첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,00..
정렬 알고리즘들과 정의정렬 알고리즘정의버블데이터끼리 인접 요소끼리 비교하고, swap 연산을 수행하며 졍렬하는 방식선택대상에서 가장 크거나 작은 데이터를 찾아 선택하는 과정을 반복하면서 정렬하는 방식삽입대상을 선택해 정렬된 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식퀵pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식병합(합병)이미 정렬된 부분 집합들을 효율적으로 병합해 전체를 정렬하는 방식힙최대 힙 트리나 최소 힙 트리를 구성해 정렬을 하는 방식 (내림차순 정렬-최소 힙 / 오름차순 정렬-최대 힙)기수데이터의 자릿수를 바탕으로 비교해 데이터를 정렬하는 방식 05-1. 버블 정렬버블 정렬: 두 인접한 데이터의 크기를 비교해 정렬. 시간 복잡도 O(n^2)으로 다른 알고리즘보다..
"실전에서 TDD하기(카카오페이 기술 블로그)"를 읽고 정리한 내용입니다. https://tech.kakaopay.com/post/implementing-tdd-in-practical-applications/ 실전에서 TDD하기 | 카카오페이 기술 블로그TDD가 무엇인지 모르는 사람은 없습니다. 그런데 왜 하는 사람은 얼마 없을까요?tech.kakaopay.com QA, PM 뿐 아니라 개발자도 품질 보장을 위한 노력을 해야 한다. 릴리즈된 애플리케이션에는 지속적으로 새로운 기능 추가가 이루어지게 된다.기존 코드를 추가/삭제/수정할 때, 기존에 있던 동작이 변하지 않았음을 증명해야 한다. 어떻게?매번 애플리케이션을 구동시켜 직접 모든 기능을 일일이 확인하기는 쉽지 않다. -> 테스트 코드 작성이 중요. ..
04-1. 배열과 리스트배열: 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조.- 값을 인덱스를 통해 참조(값에 바로 접근 가능. 새로운 값 삽입/삭제 어렵.)- 배열의 크기는 선언할 때 지정, 한 번 선언하면 크기를 늘리거나 줄일 수 X.- 선언한 자료형의 값만 저장 가능.리스트: 값과 포인터를 묶은 노드를 포인터로 연결한 자료구조- 인덱스가 없으므로 값에 접근하려면 Head 포인터부터 순서대로 접근해야 (값에 접근하는 속도 느림)[11720번: 숫자의 합] / 브4import java.io.*;import java.util.*;public class Main{ public static void main(String[] args) throws IOException { BufferedRea..