[내일배움캠프] - 2026.04.06(월)ㅣ스프링 플러스 프로젝트
·
TIL & 트러블 슈팅
과제에 들어가기 앞서.. 이번 과제는 효율적으로 문제를 해결하기 위해 마일스톤을 참고하여 진행했으며, 문제 번호는 마일스톤 기준으로 나열하였습니다. 1. 코드 개선 퀴즈 - @Transactional의 이해할 일 저장 기능을 구현한 API(/todos)를 호출할 때, 아래와 같은 에러가 발생하고 있어요. 에러 로그 원문에러가 발생하지 않고 정상적으로 할 일을 저장 할 수 있도록 코드를 수정해주세요. 문제 풀이 클래스 레벨에 @Transactional(readOnly = true) 가 선언되어 있어서 saveTodo() 메서드까지 읽기 전용으로 동작했었습니다 그로 인해 오류가 발생되고 있었고 해결 하기위해 기존 클래스에 선언되어있던 @Transactional을 saveTodo() 메서드에만 별도로 선언해주..
[내일배움캠프] - 2026.03.31(화)
·
TIL & 트러블 슈팅
2026.03.31(화) TIL오늘은 스프링 플러스 과제가 발제되었습니다. 챕터4 Index 강의를 시청하였고, Index는 면접에서 단골로 나오는 주제인 만큼 유튜브와 구글 검색을 통해 추가적으로 공부하였습니다. 이후 스프링 플러스 과제의 필수 Lv.1 1번, 3번 문제를 풀었습니다. 이번 과제는 사실 이전에 배웠던 내용들이었지만, 개념을 조금 더 이해한 상태에서 다시 풀어보니 새로운 느낌이었습니다. 이전에는 제대로 이해하지 못한 채로 사용했던 탓에 문제를 보았을 때 스스로 풀 수 없을 것 같다는 느낌에 집중이 잘 되지 않았습니다. 하지만 그 과정을 거치고 나서 해당 내용들을 조금이라도 알고 나니 손에 잡히는 문제가 되었고, 그 차이가 꽤 크게 느껴져서 좋았습니다. 내일은 캐싱에 대해 공부하면서 과제를..
인덱스(Index)
·
DataBase
인덱스(Index)란?인덱스(Index)는 데이터베이스 테이블에서 데이터를 더 빠르게 검색하기 위해 사용하는 자료구조입니다. 마치 책의 목차처럼 원하는 데이터를 빠르게 찾을 수 있도록 도와주며, 데이터를 정렬된 구조로 유지하여 테이블 전체를 스캔하지 않고도 필요한 데이터에 빠르게 접근할 수 있도록 합니다.서점으로 이해하는 Index인덱스가 없는 경우, 데이터베이스는 원하는 데이터를 찾기 위해 테이블의 모든 행을 처음부터 끝까지 하나씩 확인해야 합니다. 이를 Full Table Scan 이라고 합니다. 데이터가 10건이라면 금방 찾을 수 있지만, 1만 건, 10만 건이 넘어간다면 그만큼 조회 시간이 길어지게 됩니다. 인덱스 없이 전체를 탐색하는 경우 교보문고에서 스프링 부트 관련 책을 찾는다고 가정해봅시..
[내일배움캠프] - 2026.03.30(월)
·
TIL & 트러블 슈팅
2026.03.30(월) TIL길고 길었던 결제 시스템 프로젝트가 끝나고, 이번 주부터 새로운 발제가 시작되었습니다. 오늘은 지난 시간에 배웠지만 따로 정리하지 못했던 Docker에 대해 다시 복습하며 주요 개념들을 정리해 보았습니다. Docker는 현대 개발 환경에서 빠질 수 없는 도구인 만큼, 단순히 명령어를 외우는 것에서 그치지 않고 왜 필요한지, 어떤 원리로 동작하는지까지 깊이 이해하는 것이 중요하다고 생각합니다. 앞으로도 계속해서 공부하며 내용을 보완해 나갈 예정입니다.→ 도커(Docker) 개념 정리: https://hyunspaceworkshop.tistory.com/30
도커(Docker)
·
Etc/Web & CS
도커(Docker)란?도커는 소프트웨어 개발과 배포를 도와주는 컨테이너(Container) 기술입니다. 도커를 사용하면 애플리케이션을 빌드하고, 배포하고, 실행하는 전체 과정을 훨씬 쉽게 관리할 수 있습니다.주요 개념Docker Image: 애플리케이션과 그 실행에 필요한 모든 설정이 포함된 스냅샷입니다. 컨테이너를 만들기 위해 반드시 필요한 재료라고 할 수 있습니다. Docker Container: 이미지를 기반으로 실행되는 독립된 프로세스입니다. 독립된 환경에서 애플리케이션을 실행하기 때문에, 서로 다른 컨테이너는 서로 간섭하지 않습니다. Docker Hub: 이미지를 공유하고 배포할 수 있는 중앙 저장소입니다. 다른 사람이 만들어 놓은 이미지를 가져다 쓸 수도 있고, 내가 만든 이미지를 올려서 공유..
프로그래밍 언어(Programming Language)
·
Etc/Web & CS
프로그래밍 언어프로그래밍 언어는 두가지로, 저급언어와 고급언어로 나뉩니다. 아래에서는 저급언어와 고급언어가 뭔지 또한 관련 언어들의 특징에 대해서 알아보겠습니다.저급 언어저급 언어는 컴퓨터가 이해하기 쉬운 형태로 작성된 프로그래밍 언어를 말하며, 기계어와 어셈블리어가 이에 해당됩니다. 실행속도는 빠르지만 사람이 이해하기 어렵다는 단점이 있습니다. 아래에서 자세히 살펴보겠습니다. 기계어컴퓨터가 직접 이해할 수 있는 언어입니다.0과 1의 2진수 형태로 표현되며 수행 시간이 빠릅니다.CPU에 내장된 명령들을 직접 사용하는 것으로, 프로그램을 작성하고 이해하기 어렵습니다.기종 마다 기계어가 다르므로 언어의 호환성이 없습니다. 어셈블리어하드웨어 제어에 주로 사용되며, 언어의 호환성이 없습니다.컴퓨터가 직접 이해할..
아키텍처(Architecture)
·
Etc/Web & CS
아키텍처란(Architecture)?아키텍처(Architecture)란? 시스템의 구조, 동작 등을 정의하는 개념적인 모형으로 시스템의 목적을 달성하기 위해 시스템의 각 컴포넌트가 무엇이며 어떻게 상호작용하는지, 정보가 어떻게 교환되는 지를 설명합니다.소프트웨어에서의 아키텍처소프트웨어 아키텍처는 시스템을 구성하는 다양한 요소들이 어떻게 상호작용하고 배치될지 정의하는 청사진입니다. 아키텍처는 시스템의 구조를 설계할 때 중요한 역할을 하며, 성능, 확장성, 유지보수성 등 여러 측면에서 시스템의 성공에 큰 영향을 미칩니다. 여기서는 주요 소프트웨어 아키텍처 패턴과 아키텍처 설계 시 고려할 점들을 설명하겠습니다. 소프트웨어 아키텍처 패턴레이어드 아키텍처 (Layered Architecture)가장 일반적이고 많..
컴퓨터 구조(Computer architecture)
·
Etc/Theoretical Computer Science
컴퓨터 구조컴퓨터는 하드웨어(Hardware) 와 소프트웨어(Software)가 결합된 시스템으로, 정보를 처리하고 다양한 작업을 수행할 수 있도록 설계되어 있습니다.하드웨어(Hardware)하드웨어는 컴퓨터를 구성하는 물리적인 장치들을 의미하며, 다음과 같은 주요 구성 요소로 이루어집니다. 중앙처리장치(CPU, Central Processing Unit)컴퓨터의 두뇌 역할을 하며, 연산 및 제어 기능을 수행합니다. 산술 논리 연산장치(ALU)와 제어장치(Control Unit)로 구성됩니다. 메모리(Memory)데이터를 저장하고 처리하는 공간입니다. RAM, ROM, 캐시, 레지스터 등이 있으며, 각각 속도와 용도에 따라 구분됩니다. 입출력 장치(I/O Devices)사용자와 컴퓨터 간의 상호작용을 담..