분류 전체보기
-
백엔드 프로젝트[1] - REST API 기초Backend & Infra/Backend 2026. 7. 4. 16:35
안녕하세요 오늘은 REST API 기초에 대해 공부해보겠습니다. 먼저 스프링은 뭘까요?스프링은 Java로 서버를 만들때 반복적인 일들을 줄여주기 위한 프레임워크입니다!이번 프로젝트에서는 스프링을 사용하여 진행하였습니다! 먼저 https://start.spring.io 에 접속하여 프로젝트를 만들어줬습니다. 들어가면 이런 화면이 뜨는데 그냥 기본 설정을 해서 프로젝트를 생성 누르면 파일을 다운받을 수 있고 이 파일을 vscode나 intellij 등을 통해 열어서 사용하시면 됩니다. 저는 다운을 받아서 압축을 풀고 intellij를 통해 진행하였습니다. 다운받은 것을 열면 파일이 생각보다 많아서 너무 무서웠어요.. 근데 저희는 일단 src/main/java, src/test, pom.xml 이거 3개만 알..
-
백엔드 프로젝트[0]Backend & Infra/Backend 2026. 7. 3. 17:06
안녕하세요 제가 백엔드 경험이 사실 거의 없어서..아니요 그냥 없어요.. 진짜 없습니다.. 클로드나 이런 AI를 이용해서 바이브 코딩이 대세가 되면서 너무 이런거에 의존을 했나봅니다.. 학기중에 프로젝트를 몇개하면서 뚝딱뚝딱 어떻게든 만들어보긴했었는데.. 실제로 제 머리속에 남는 건 AI 프롬프트 잘 입력하는 법 말고는 크게 없는 것 같습니다.. 물론 중요한 역량입니다. 하지만 백엔드를 깊게 처음부터 파보고 싶어서 진짜 기초부터 하나씩 뜯어서 공부해보려고 합니다. 저 진짜 기초지식 1도 없으니 하나씩 따라오시면 공부 잘 되실 겁니다! 클로드를 이용하여 학습을 진행할 예정이고, 작은 프로젝트를 단계별로 나누어 진행합니다. 최종 목표는 "1,000명이 동시에 써도 안 죽는 서버" 즉 고가용성 서버만들기 입니..
-
[기본 네트워크-3] Network Address TranslationBackend & Infra/Network 2026. 7. 3. 14:50
자 여러분 오늘은 Network Address Tanslation, NAT에 대해 공부해보겠습니다.제가 이 글의 전 글에서 라우터의 통신에 대해 이야기를 하면서 외부통신과 내부통신에 대해 말했습니다.전 글에 제가 쉽게 잘 적어두었으니 잠깐 보고오시는 거도 좋을 듯 합니다! 그리고 짧아요! ㅋㅋ 목적지 주소에 대한 정보가 라우터의 라우팅 테이블에 존재하지 않으면 WAN 포트를 통해 전달하고 이를 외부 통신이라고 합니다!조금 더 생각을 해보면 의문점이 생길 겁니다. 제가 IP주소에 대해 이야기를 했었는데 IP 주소를 모든 디바이스나 라우터에 할당해주지 못하기에 인터넷과 연결이 가능한 public ip 그리고 그 public ip안에서 연결되는 private ip에 대해서 이야기를 했었죠. 그렇다면 무슨 의문..
-
[기본 네트워크-2] 네트워크 주소와 통신(라우터)Backend & Infra/Network 2026. 7. 3. 00:39
바로 전에 LAN, 그리고 그 LAN들을 서로 연결해주는 WAN에 대해 공부했습니다.자, 그럼 데이터를 전달하는데 LAN안에 여러개의 디바이스가 있습니다. 그 여러개의 디바이스 중 어느 디바이스로 정보를 전달해야 맞는걸까요? 그래서 나온 것이 바로 IP 주소 입니다. IP 주소란 네트워크상에서 주소 역할을 하고, 모든 디바이스와 라우터는 IP주소를 가지고 있습니다.IP 주소는 간단하게 설명하자면 IPV4, IPV6로 구성되어 있고 네트워크 ID와 호스트 ID로 구성됩니다. Ipv4의 ip 개수가 모자라서 IPV6가 나오게 되었습니다. 그러면 ip 주소 개수도 모자란 상황에 모든 디바이스에 ip주소를 할당하기에는 조금 무리가 있겠죠? 따라서 IP는 public과 private으로 나뉘게 됩니다. 더 자세히..
-
[기본 네트워크-1] Why!!!! 왜!! public과 private subnet은 분리되어 있어서 날 헷갈리게 하는 것일까하며 글을 쓰기 시작했지만 실제로는 네트워크와 라우팅에 대한 글 입니다.Backend & Infra/Network 2026. 7. 2. 15:53
안녕하세요.오늘은 먼저 왜 public과 private subnet이 분리되어 있는지.. 왜 시작부터 절 화나게 하는지 공부해보겠습니다. 그럼 먼저 public과 private이 왜 분리되어있는지 확인하기전에 이것들이 어디에 위치해있고 무엇인지에 대해 알아보겠습니다.아니요? 여러분 죄송합니다..public private을 설명해주는 글을 읽어도 정확하게 이해가 되지 않아서 사전 지식 먼저 정리해보겠습니다. 사전 지식 - 네트워크와 라우팅먼저 네트워크와 라우팅에 대한 이해를 먼저 하고 가겠습니다. 일단 예전에는 휴대폰, 컴퓨터와 같은 디바이스의 수가 적어 디바이스간의 연결을 1:1로 연결하기도 했었습니다. 근데 디바이스 수가 점점 많아지자 현실적으로 구축이 불가능해졌죠. 그래서 생긴 방법이 라우터 입니다..
-
2026년 방학 목표Behind the Code 2026. 6. 25. 16:49
2026년 상반기에 대한 기록을 남겨보고 싶어서 이렇게 글을 쓰게 되었습니다. 25년 9월에 전역을 하고 학교에 복학하여 무사히 한 학기를 마쳤습니다.저는 소프트웨어학과를 다니고 있고 어느덧 3학년이 되었지만 아직까지도.. 제가 무슨 직군을 가고싶은지 잘 모르겠습니다. 현재 나의 생각 제 주변 학우들도 비슷한 고민을 하는 것 같은데 자신이 하고 싶은 직군이 확고하게 있는 사람들을 보면 괜히 불안해지고.. "너무 늦었나"라는 생각도 자연스레 하게됩니다. 이런 고민을 가지고 처음에 학교에 복학하였을 때 이번 학기에는 "최대한 많은 것을 경험해보며 직군을 정해보자" 라고 생각했었는데 21학점 7전공의 벽은 너무나 높았습니다. 그래도 학 학기동안 얻은 것이 있다면 운영체제와 보안 공부가 생각보다 흥미로웠다는 점..
-
문자열 알고리즘(1)-애너그램 찾기, 팰린드롬 찾기Algorithm 2025. 2. 9. 18:38
문자열 알고리즘문자열 알고리즘은 기술 면접에 가장 자주 나오는 알고리즘입니다.문자열 알고리즘에서 가장 많이 나오는 주제로는애너그램 찾기팰린드롬 찾기마지막 숫자시저의 암호등이 있습니다. 이번 블로그에서는 애너그램 찾기와 팬린드롬 찾기 알고리즘에 대해 공부해보겠습니다.애너그램 찾기애너그램이란 숫서와 대소에 관계없이 똑같은 문자로 구성된 두 문자열을 의미합니다. 예를 들어 Car와 arc는 애너그램입니다. 먼저 s1과 s2가 애너그램인지 아닌지를 판별해주는 함수를 작성해보겠습니다.먼저 s1, s2를 인자로 받습니다.s1 ,s2 둘 다 띄어쓰기를 없애고 대문자를 소문자로 바꿉니다.둘 다 정렬을 한 상태로 같은지 비교합니다.두 인자가 같다면 True, 다르다면 False를 리턴합니다.시간 복잡도👉애너그램을 찾..
-
Sort Algorithm-정렬 알고리즘(2)Algorithm 2025. 2. 7. 19:17
정렬 알고리즘데이터 정렬이란 데이터를 일정한 순서로 배치하는 것을 말합니다. 정렬 알고리즘에는 다양한 방법이 있으며, 버블 정렬, 삽입 정렬, 병합 정렬 등이 있습니다. 대표적인 정렬 알고리즘으로 세 가지 알고리즘이 있습니다.버블 정렬삽입 정렬병합 정렬삽입 정렬 삽입 정렬은 카드 묶음을 정렬하는 것과 비슷한 알고리즘 입니다. 먼저 카드 묶음에는 정렬된 카드, 정렬되지 않은 카드들이 있습니다. 정렬되어 있지 않은 카드들의 묶음에서 카드를 하나씩 빼서 정렬된 카드 묶음에 올바른 위치에 넣는 알고리즘을 삽입 정렬이라고 합니다. 삽입 정렬 코드를 보겠습니다. 먼저 N과 n_list에 입력받을 리스트의 길이와 리스트의 요소들을 입력받습니다.insertion_sort라는 함수를 선언합니다.먼저 1부터 a_lis..