BackEnd 7

[BackEnd] 코드리뷰의 중요성

경험최근 프로젝트를 하며 코드리뷰 절차가 충분히 준수되지 않아서프론트엔드 팀원이 저를 고발한 사건이 있었습니다.이전에 저는 코드리뷰의 중요성을 느끼지 못하고"아 문제없으면 머지해~~"라는 마인드를 가지고 있었습니다.하지만 이번 사건으로 인해 코드리뷰의 중요성을 일부분 깨닫게 되었고코드를 신중하게 작성하고 코드리뷰에 최선을 다하는 자세를 가지게 되었습니다.또한 코드리뷰의 중요성을 실무 차원에서 느껴보기 위해 더 조사해봤습니다. 코드리뷰 왜 함?버그를 초기에 발견 가능잘못된 비즈니스 로직이나 보안 취약점 등을코드리뷰를 주고받는 시점에서 효과적으로 처리할 수 있습니다.배포하고 나서 문제 생기면 고치는 것보다 처음부터 잡는 게 여러모로 유리합니다.코드 균일화파일 구조나 네이밍 규칙같이프로젝트의 전반적인 컨벤션과..

BackEnd 2025.11.26

[BackEnd] 우리가 Spring으로 백엔드를 시작하는 이유

Spring이란?대부분 알고 있을 테니 간단하게만 하겠습니다 : )우선 Spring이란 객체지향 언어인 자바를 기반으로 한서버나 백엔드를 쉽게 만들게 해주는프레임워크 (framework)입니다. DI나 IoC 같은 핵심 개념이 있고Spring boot나 Spring security, Spring MVC 등의 기술을사용할 수 있습니다. 왜 이걸로 처음 배울까?저희 학교 이외에도 백엔드 개발을 처음 접하면서Spring을 많이 사용할 것입니다.그렇다면 다른 언어 기반의 프레임워크도 많은데왜 대부분 Spring framework로 시작할까요?그 이유는 다음과 같습니다.실무에서 많이 쓰이기 때문에한국이나 글로벌 엔터프라이즈에서사실상 백엔드의 표준형이 Spring이기 때문입니다.기업이나 기관마다 다른 기술을 사용하..

BackEnd 2025.10.01

[BackEnd]클린 아키텍쳐가 뭐임?

클린 아키텍쳐의 탄생클린 아키텍쳐란 Robert C. Martin라는 개발자 아저씨가 만든소프트웨어 설계 원칙입니다.이 개발자 아저씨는 기존에 개발을 하면서 프레임워크나 라이브러리 변경 시에 비즈니스 로직까지 영향을 받아서유지보수가 어려워지거나DB나 웹에 너무 강하게 결합된 비즈니스 로직이 생기고,코드가 확장될수록 기능을 추가하거나 변경할 때코드 복잡도가 미친 수준이 되는 문제점을 발견했습니다. 그래서 이러한 문제점을 해결하기 위해서비즈니스 규칙을 프레임워크 / 인프라와 독립시키고의존성은 추상화를 통해 제어하며테스트가 쉽고 간편한 클린 아키텍쳐라는구조를 만들게 되었습니다.(책과 강연 등으로 클린 아키텍쳐를 홍보하고 다니기도 했다고 하네요) 클린 아키텍쳐의 개념클린 아키텍쳐는 소프트웨어를 계층으로 나누고의..

BackEnd 2025.09.17

[BackEnd] 객체지향 설계의 SOLID 원칙

SOLID란?SOLID는 객체지향 프로그래밍에서 코드를 유지보수하기 쉽고, 확장 가능하며,이해하기 쉽게 작성 할 수 있게 만든 SRP, OCP, LSP, ISP, DIP 이 다섯가지 원칙의앞글자를 따서 약자 SOLID라고 부릅니다.이 원칙은 클래스 설계와 코드 구조를 더 유연하고 깔끔하게 할 수 있게 해줍니다.각 원칙 이 무슨 원칙인지 알아보겠습니다. 1. S - SRP첫 번쨰 원칙은 SRP입니다.SRP는 Single Responsibility Principle(단일 책임 원칙)의 약자입니다.이 원칙의 정의는 "클래스는 오직 하나의 책임만 가져야 한다." 입니다.여기서 책임이란 변경 이유 정도로만 생각해도 괜찮을 거 같습니다.이 원칙은 하나의 클래스는 하나의 기능 또는 역할만 담당해야 한다. 즉해당 기능..

BackEnd 2025.07.22

[BackEnd] REST API

REST APIREST API는 설계 원칙인 REST를 기반으로 설계된 API입니다. 그럼 REST와 API는 무엇일까요?RESTREST는 Representational State Transfer의 약자로, 직역하면 "대표 상태 이전" 입니다.설명하자면 REST는 사용자, 게시글 등에 해당하는 자원을 URI로 식별하고Delete, Post와 같은 HTTP 메서드를 사용하여 자원을 조작하는 방식을 말합니다.웹의 표준 프로토콜인 HTTP를 사용하여 자원이 저장되어있는 서버와 사용자인 클라이언트 사이를 통신하기 때문에 HTTP의 메서드와 같은 기본 기능들을 그대로 활용해서 사용하여 통신하게 됩니다. REST는 특정 프로토콜에 종속되지 않기 때문에 HTTP가 아니어도 다른 전송 방식을 사용 할 수 있지만 RE..

BackEnd 2025.07.02

[BackEnd] 객체지향이란?

객체지향OOP라고 부르기도 하는 객체지향 프로그래밍(Object-Oriented Programming)은 현실 세계를 모방해서 프로그램을 구현하는 방식입니다. 현실의 사물처럼 데이터와 기능을 하나로 묶어서 표현하는 방식 입니다. 예를 들어 현실에 '자동차'라는 객체가 있다면 그 객체의 속성으로 '색상', '브랜드', '속' 등과 같은 속성이 있을 것입니다. 또한 '달리기', '멈추기', '경적 울리기' 같은 기능이 있을 것입니다. OOP 에서는 이런 식으로 하나의 객체에 속성과 기능을 묶어서 코드를 구성하게 됩니다. 객체지향 언어• Java: 100% 객체지향을 사용하는 언어입니다. • C++: C언어를 기반으로 하고 객체지향을 추가하여 클래스와 포인터를 사용하는 언어 입니다.• Python: 매우 유연..

BackEnd 2025.06.18

[BackEnd] 데이터베이스와 CRUD

DB란?DB는 정보를 체계적으로 저장하고 관리하는 공간으로, 도서관에 비유할 수 있습니다. 도서관에서 책을 제목, 저자, 분류별로 정리해두는 것 처럼 DB는 데이터를 테이블과 컬럼 형태로 정리해 필요한 정보를 쉽게 찾을 수 있도록 합니다. 사용자는 프로그램을 통해 데이터를 입력하거나 검색하고, 수정하거나 삭제할 수 있으며, DB는 이를 빠르고 안정적으로 처리하는 역할을 합니다. 이렇게 DB는 소중한 데이터를 보관하고 활용하는 데 있어 핵심적인 역할을 하게되며 특히 여러 사람이 동시에 정보를 다뤄야 하는 웹 서비스나 애플리케이션등의 백엔드를 개발하는데 꼭 필요한 핵심 요소 중 하나입니다. DB의 종류제가 공부한 DB는 두가지 입니다. 우선 전공동아리 게시판 CRUD 과제를 만들며 가장 처음에 사용해본 H2..

BackEnd 2025.06.16