전체 글
-
백준 1213번 팰린드롬 만들기 JAVA카테고리 없음 2025. 4. 23. 13:11
https://www.acmicpc.net/problem/1213 요구사항 정의대문자 문자열을 팰린드롬 문자열로 만들기N 풀이 방법팰린드롬이란 앞에서 읽거나 뒤에서 읽거나 같은 문자열을 의미 두 가지를 고려하여 문제 풀기1. 팰린드롬을 만들 수 있는지 체크2. 팰린드롬으로 만들기 알파벳 다루기알파벳에서 대문자의 개수는 26개, 소문자의 개수도 26개int[] counter = new int[26]; char 자료형으로 인덱스를 다룰 때는 아래와 같이 배열로 접근 가능for (char c : str.toCharArray()) { counter[c - 'A'] += 1; // = counter[c - 65] += 1;} 팰린드롬인지 체크하기결론부터 말하면 홀수 알파벳의 개수는 1개이하여야한다. AABAA ..
-
1장 도메인 모델 시작하기카테고리 없음 2025. 4. 23. 01:36
도메인이란?도메인은 소프트웨어로 해결하고자 하는 문제 영역하나의 도메인은 몇 개의 하위 도메인으로 나뉜다(상위/하위 도메인)예를 들어서 은행 도메인에서는 하위 도메인으로 여신, 수신 도메인이 존재한다. 도메인 모델도메인 모델은 기본적으로 도메인 자체를 이해하기 위한 개념 모델Class Diagram이나 State Machine Diagram 등 다양한 방법으로 도메인을 표현할 수 있음→ 혹은 UML 표기법이 아닌 다른 표기법을 사용해도 괜찮다 👉🏿 하위 도메인과 모델같은 용어라도 하위 도메인 마다 의미가 달라질 수 있다. 도메인에 따라서 용어 의미가 결정되므로 여러 하위 도메인을 하나의 다이어그램에 모델링하면 안된다.즉, 어떤 도메인 하위 도메인 인지에 따라서 데이터 구성과 기능이 다르게 정의될 수..
-
Database Study 회고록카테고리 없음 2025. 4. 14. 23:26
신청 계기? 저번에 Java Study를 진행하고 면접 연습과 CS 지식을 익히는데 도움이 되었다고 생각해서 한번 더 신청했다. 진행 방식? 스터디는 매주 금요일 저녁시간에 Zoom을 통해서 진행됐다.매주 목요일까지는 블로그로 스터디 내용을 정리해야 해서 2일은 이론공부 + 블로그 정리, 당일날은 면접 연습을 했다. 성장한 점?이번에 특히 꼬리질문을 많이 받았고 당황했지만 잘 답변했던 것 같다.저번 스터디에서는 준비된 질문만 답변하는 방식이었지만 팀원이나 멘토님들께서 좀 더 꼬아서 내주셔서 갑작스러운 상황을 많이 연출할 수 있었다. 아쉬운 점?하지만 저번 스터디에는 거의 다 참여했지만 이번 스터디에는 5번 중 3번을 참여하지 못해서 아쉬웠다.과제는 매주 다했지만 스터디날에 소마나 다른 일정들 때문에 참..
-
NoSQL, Redis카테고리 없음 2025. 4. 10. 10:59
5주차 Database Study MongoDBNoSQL 데이터베이스 MongoDB의 특징스키마 리스 : 비정형 데이터를 저장샤딩 : 데이터를 여러 서버에 나누어 저장하는 수평 확장 방식, 쿼리(조회)시 통합된 결과를 제공비정형 데이터란 사전 정의된 규칙이 없는 데이터 MongoDB가 데이터를 저장하는 형식BJSON(Binary JSON) 형태로 데이터를 저장 BJSON과 JSON의 차이JSON은 텍스트 형태로 저장되는 반면, BJSON은 이진형식으로 이루어져있다이진형식으로 저장되어있어 BJSON은 MongoDB와 같은 툴을 이용해 읽어야함텍스트 형식으로 저장되는 JSON과 달리 BJSON은 공간 및 처리속도가 빠르다 MongoDB 구조Document : 데이터를 저장하는 최소 단위 = RowColle..
-
Scailability, Operations카테고리 없음 2025. 4. 2. 23:51
4주차 Database Study 데이터베이스 확장(Database Scaling) 데이터베이스의 성능을 향상시키는 방법, Scale-Up과 Scale-Out이 있음 데이터베이스에서의 Scale-Up / Scale-OutScale-Up : 데이터베이스의 기존 서버의 성능을 향상 ex) CPU, Memory, Disk 등장점 : 데이터베이스 하나로 처리하면되므로 유지보수 용이단점 : 비용이 올라갈수록 성능향상을 보장하지 않음 -> Scale Up을 통해 확장하는 방식은 한계가 존재 Scale Out : 데이터베이스의 개수를 늘리는 방법장점 : 확장성, 고가용성단점 : 유지보수가 힘듬, 여러 데이터베이스 간의 데이터일관성을 맞추기 위해서 노력 샤딩(Sharding)데이터를 나누어 여러 서버에 분산..
-
Recovery, Internal, Performance카테고리 없음 2025. 3. 27. 23:20
3주차 Database Study 데이터베이스 회복(Recovery)데이터베이스에 장애가 발생했을 때 데이터베이스를 원복하는 것데이터베이스에 장애가 발생하면 그 사이에 작업된 데이터들에 모순이 생기거나 혹은 기존 데이터가 소실될 수 있음 = 데이터베이스의 일관성이 깨지게됨 Write-Ahead Logging(WAL)데이터베이스에 연산을 수행할 때 변경 내용을 로깅하는 방식데이터베이스에 장애가 발생하게 되면 로그를 참조하여 데이터베이스를 복구 트랜잭션 로그Redo 로그: 장애발생시, 변경사항을 재실행하기 위한 로그 = 어떻게 복원할까?Undo 로그: 롤백이나 장애발생시, 이전 상태로 되돌리기 위한 로그 = 어떻게 롤백할까? 이런 데이터가 있다고 가정하면USERS(ID=1, NAME=’Bye’)//사용..
-
인덱스카테고리 없음 2025. 3. 20. 01:29
2주차 Database Study 인덱스테이블 내에서 검색속도를 향상시키는 자료구조특정 컬럼에 대한 검색, 정렬 속도를 빠르게 수행특정 값이나 범위 검색시 유용 WHERE, BETWEEN, ORDER BY, JOIN할때도 유용 B-Tree 인덱스, Hash 인덱스B-Tree를 통해 데이터를 정렬하여 저장 → 정렬과 범위 검색에 유용 : O(logN)데이터를 해시값으로 저장 → 정확히 일치하는 값을 찾는데 최적 : O(1) 인덱스를 사용할 때 장/단점검색속도 향상앞서 말한대로 특정 값이나 범위 검색시 유용하다는 장점 저장공간 필요INT 4byte, VARCHAR는 데이터의 크기만큼 차지한다고함 인덱스 갱신쓰기 작업(INSERT/UPDATE/DELETE) 수행시, 인덱스를 재구성하는 인덱스 갱신이 일어남..
-
트랜잭션카테고리 없음 2025. 3. 20. 00:48
2주차 Database Study 데이터 정합성 : 데이터가 서로 모순이 없이 일관되게 일치해야함 ex) A가 변경되면 B도 똑같이 변경되어야함데이터 무결성 : 데이터의 값이 정확해야함 ex) 제약조건을 위반한 값이 있으면 안된다 트랜잭션데이터베이스에서 일련의 작업을 하나로 묶어서 처리하는 것 트랜잭션은 일련의 작업에 대한 데이터 정합성을 보장해준다. 작업 수행 도중 실패하게되면 모든 데이터가 이전 상태로 돌아간다 → 데이터 정합성 보장 = 데이터에 모순이 없음 트랜잭션의 특성 : ACIDAtomicity (원자성)트랜잭션 내 모든 작업이 하나로 처리되어야함ALL 성공 or ALL 실패 Consistency (일관성)트랜잭션 시작/종료의 데이터베이스 상태는 일관되어야함데이터의 규칙이나 제약조건을 위반..