Dayoming

인프런 워밍업 클럽 백엔드 스터디 2기 | 2주차 발자국과 중도하차 회고

박우빈 님의 Readable Code: 읽기 좋은 코드를 작성하는 사고법 을 듣고 작성한 게시글입니다. KPT Keep: 앞으로 지속하고 싶은 부분 🌿 인프런 노트 전부 기록하는 것보다 인프런 노트를 활용하는게 확실히 더 빠르게 정리할 수 있었다. 그림 자료 같은 건 체크만 해 놓으면 나중에 다시 확인할 수 있어서 좋은 것 같다....

[JAVA] 상속 알아보기

상속 김영한의 실전 자바 기본편을 보며 정리해보는 상속 상속이란 주로 부모 자식 간의 관계로 많이 비유된다. 이목구비의 생김새나 어떤 행동 양식이 비슷하게 보이는 것은 우리가 부모님에게 같은 유전자를 물려받았기 때문이다. 이렇게 부모로부터 무언가를 물려받는 것을 상속이라고 한다. 우리는 이렇게 물려받은 유전자를 베이스로 커가면서 겪는 ...

[JAVA] 접근 제어자와 캡슐화 알아보기

접근 제어자 김영한의 실전 자바 기본편을 보며 정리해보는 자바의 접근 제어자 접근 제어자란 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한하는 것을 뜻한다. 아마 객체지향 언어를 한 번이라도 본 적이 있다면 public이나 private 키워드가 낯이 익을 것이다. 이런 키워드가 바로 접근 제어자, 혹은 접근 제한자...

[JAVA] 기본형과 참조형 알아보기

기본형과 참조형 김영한의 실전 자바 기본편을 보며 정리해보는 자바의 기본형과 참조형 자바의 변수 데이터 타입은 크게 사용하는 값을 변수에 직접 넣을 수 있는 기본형, 객체가 저장된 메모리의 위치를 가리키는 참조값을 넣을 수 있는 참조형으로 분류할 수 있다. 자바에서 참조형을 제대로 이해하는 것은 C언어의 포인터를 이해하는 것 만큼 중요하다...

[JAVA] 클래스와 객체를 붕어빵으로 알아보기🍞

클래스와 객체 김영한의 실전 자바 기본편을 보며 정리해보는 자바의 클래스와 객체 개념 클래스와 객체 개념을 설명할 때 어김없이 나오는 붕어빵과 붕어빵 틀! 오늘은 왜 다들 클래스를 붕어빵 틀에 비유하고, 붕어빵을 객체에 비유하는지 붕어빵을 잔뜩 만들어 보며 자세히 알아보도록 하자. ⚠️ 붕어빵과 붕어빵 틀은 엄밀히 말하면 정확한 비유가...

신입 개발자 대차게 말아먹은 첫 기술 면접 회고

신입 개발자 첫 기술 면접 회고 면접 장렬하게 말아먹고 하루 종일 이불 차다가 남겨보는 후기 처음 서류 합격 소식은 문자로 받았다. 평소 스팸 문자 말곤 문자 날아올 일이 없는데.. 아무 생각 없는 상태에서 받은 거라 진짜 얼떨떨했다. 서류 합격 고지를 받고 이틀 후 쯤 코딩 테스트가 예정되어 있었다. 최근에는 개인 프로젝트 개발 한다...

[JAVA] 다형성에 대해 알아보자 - 추상 클래스와 인터페이스☕

지난 포스팅에 다형성의 주요 개념 2가지인 다형적 참조와 메서드 오버라이딩에 대해 정리했다. 이번에는 객체지향 프로그래밍에서 다형성이 어떻게 사용되는지 살펴보고, 다형성의 필요성에 대해 알아보면서 추상 클래스와 인터페이스까지 정리 해보려고 한다. 해당 포스팅은 김영한의 실전 자바 기본편을 보고 작성되었다. 다형성의 활용 Dog과 Cat 클래스...

[99클럽 코테 스터디 22일차 TIL] BFS로 순위 문제 풀이

문제 프로그래머스 - 순위 문제를 보고 풀이한 내용이다. n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기려 합니다. 하지만 몇몇...

[JAVA] 다형성에 대해 알아보자 - 다형적 참조와 메서드 오버라이딩☕

김영한의 실전 자바 중급 2편을 수강하면서 List 컬렉션에 대해 살펴보려던 중, List가 다형성과 OCP 원칙을 잘 적용한 예라는 설명을 듣게 되었다. 다형성의 개념에 대해 막연하게만 알고 있던 차라 List의 장점이나 설명이 와닿지 않을 것 같아서 이 참에 먼저 다형성에 대해 정리해보기로 했다. 객체 지향 프로그래밍과 다형성 객체 지향 프...

[99클럽 코테 스터디 21일차 TIL] BFS로 가장 먼 노드 문제 풀이

문제 프로그래머스 - 가장 먼 노드 문제를 보고 풀이한 내용이다. n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대...

[99클럽 코테 스터디 19일차 TIL] 이분 탐색으로 입국 심사 문제 풀이

문제 프로그래머스 - 입국 심사 문제를 보고 풀이한 내용이다. n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받...

[99클럽 코테 스터디 14일차 TIL] 그리디로 구명보트 문제 풀이

문제 프로그래머스 - 구명보트 문제를 보고 풀이한 내용이다. 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 ...

[99클럽 코테 스터디 13일차 TIL] Joystick 문제 풀이

문제 프로그래머스 - 조이스틱 문제를 보고 풀이한 내용이다. 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ -...

[99클럽 코테 스터디 9일차 TIL] BFS를 사용해 게임 맵 최단 거리 문제 풀이

문제 프로그래머스 - 게임 맵 최단 거리 문제를 보고 풀이한 내용이다. ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당...

[99클럽 코테 스터디 7일차 TIL] DFS를 사용해 소수 찾기 문제 풀이

문제 프로그래머스 - 소수 찾기 문제를 보고 풀이한 내용이다. 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution ...

[99클럽 코테 스터디 6일차 TIL] 카펫 문제 풀이

문제 프로그래머스 - 카펫 문제를 보고 풀이한 내용이다. Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. ...

[99클럽 코테 스터디 2일차 TIL] 힙과 우선순위 큐

힙(Heap) 우선순위 큐(PriorityQueue) 문제 풀이 프로그래머스 코딩테스트 연습 - 더 맵게문제를 풀어보자. 문제 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으...

[99클럽 코테 스터디 1일차 TIL] 올바른 괄호 문제 풀이와 JDK 21 신기능

프로그래머스 코딩테스트 연습 - 올바른 괄호문제를 보고 풀이한 내용이다. 문제 괄호가 바르게 짝지어졌다는 것은 ‘(‘ 문자로 열렸으면 반드시 짝지어서 ‘)’ 문자로 닫혀야 한다는 뜻입니다. 예를 들어 “()()” 또는 “(())()” 는 올바른 괄호입니다. “)()(“ 또는 “(()(“ 는 올바르지 않은 괄호입니다. ’(‘ 또는 ‘)’ 로...

🤍 What is RESTful API?

REST란? 월드 와이드 웹의 아키텍처 설계 및 개발을 안내하기 위해 만들어진 소프트웨어 아키텍처 스타일 분산형 인터넷 규모 하이퍼미디어 시스템의 아키텍처가 어떻게 작동해야 하는지에 대한 일련의 제약 조건을 정의 통일된 인터페이스, 구성 요소의 독립적 배포, 구성 요소 간의 상호 작용 확장성을 강조 캐싱을 촉진하여 사용자가 인식하...

[Spring Boot] CRUD할 때 DB에서는 무슨 일이 일어날까?🤔

JPA 로깅 설정하기 서버에서 데이터의 생성, 조회, 수정, 삭제 등을 요청하면 JPA의 리파지터리가 DB에 해당 요청을 전달한다. 요청을 받은 DB는 SQL로 쿼리를 작성해 테이블 속 데이터를 관리한다. 이제 내부에서 어떤 쿼리가 실행되는지 알아보기 위해 JPA 로깅 설정을 해보자. application.properties 파일에 다음과 같이...

[Spring Boot] 게시글 삭제하기: Delete

데이터 삭제 과정 게시판에서 글을 삭제하는 과정은 다음 순서대로 이루어진다. 클라이언트가 HTTP 메서드로 특정 게시글의 삭제를 요청한다. 삭제 요청을 받은 컨트롤러는 리파지터리를 통해 DB에 저장된 데이터를 찾아 삭제한다. (기존 데이터가 있는 경우) 삭제가 완료됐다면 클라이언트를 결과 페이지로 리다이렉트 한다. 데이터 삭제하기 ...

[Spring Boot] 게시판 내 페이지 이동하기 - 링크와 리다이렉트⛓️

리다이렉트(Redirect)란? 클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 재지시하는 것 리다이렉트를 지시받은 클라이언트는 해당 주소로 다시 요청을 보내고 서버는 이에 대한 결과를 응답한다. 이를 통해 분리된 기능을 하나의 연속적인 흐름으로 연결할 수 있다. 링크와 리다이렉트를 이용해 페이지 연결하기 링크...

[Spring Boot] 게시글 읽기: Read

데이터 조회 과정 웹 페이지에서 게시글을 등록하면 서버를 통해 DB에 저장된다. 이렇게 DB에 저장된 데이터를 웹 페이지에 출력하는 과정은 다음과 같다. 사용자가 데이터를 조회해 달라고 웹 페이지에서 URL 요청을 보낸다 서버의 컨트롤러가 요청을 받아 해당 URL에서 찾으려는 데이터 정보를 리파지터리에 전달한다. 리파지터리는 정보를 가지...