본문 바로가기

전체 글65

[Algorism] 연결 리스트 LinkedList 틈새 면접 질문: 배열과 연결리스트는 선형 자료구조이다. 이 둘의 차이를 설명하라. 오늘은 연결 리스트에 대해 알아보겠다. 알고리즘 공부는 바킹독의 유튜브로 진행하고 있으며 그중 4강 연결 리스트와 백준 문제를 가지고 공부할 것이다. https://www.youtube.com/watch?v=C6MX5u7r72E&list=PLtqbFd2VIQv4O6D6l9HcD732hdrnYb6CY&index=5 바킹독 - 00x4 연결리스트 (선형 자료구조) 연결리스트는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조입니다. 데이터를 담고 있는 노드들이 연결되어 있고, 노드의 포인터가 이전, 다음 노드와의 연결을 담당합니다. 배열에 비해서 데이터의 추가/삭제가 용이하나, 인덱스가 없는 리스트의.. 2024. 2. 24.
[CS - SpringBoot] REST API와 JSON REST API 란? 서버자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식입니다. 클라이언트에 정보를 요청하면 서버는 특정 기기에 종속되지 않고 모든 기기에서 통용할 수 있는 JSON 데이터를 응답으로 보냅니다. JSON 데이터란? 자바 스크립트 방식을 차용한 객체 표현식으로, 키와 값의 쌍으로 이루어진 속성으로 구성됩니다. HTTP 상태 코드 1xx (정보) 요청이 수신돼 처리 중입니다. 2xx (성공) 요청이 정상적으로 처리됐습니다. 3xx (리다이렉션 메세지) 요청을 완료하려면 추가 행동이 필요합니다. 4xx (클라이언트 요청 오류) 클라이언트의 요청이 잘못돼 서버가 요청을 수행할 수 없습니다. 5xx (서버 응답 오류) 서버 내부에 에러가 발생해 클라이언트 요청에 대해 적절히 수행.. 2024. 2. 13.
[SpringBoot] @Transactional 이란?? 들어가며, Service Layer에서 습관적으로 사용하고 있는 @Transactional의 동작을 바르게 이해하고 주의할 점들에 대해 알아보자. 해당하는 메서드를 실행할 때 스프링은 트랜잭션을 시작하고, 메서드가 정상적으로 종료되면 트랜잭션을 commit하고, 예외가 발생하면 트랜잭션을 rollback합니다. 즉, 비정상적 종료로 인한 rollback이 발생할 경우에는 트랜잭션의 일부 작업만 데이터베이스에 반영되는 것을 방지해 데이터 일관성을 유지할 수 있습니다. 트랜잭션(Transaction 이하 트랜잭션)이란, 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다. 데이터베이스의 상태를 변화시킨다는 것은 무얼 의미하는 것일까? 간단하게 말해서 아래의 질의어(SQL)를 이용하여 데이터베.. 2024. 2. 2.
[SpringBoot] 빌더 패턴이란? @Builder 대외 팀프로젝트를 진행하다 @Builder 패턴을 알게 되었다. set 방식 대신 Builder 방식을 사용하면 무엇이 더 좋은지, 왜 사용하는지 알아보자 2024. 2. 1.
웹프로젝트 과목 1일차 수업 정리 23.12.26 들어가며, 이 웹 프로젝트 과목에서는 스프링부트에 대해 익히고 사용하는 법을 알려준다. 책은 '점프 투 스프링부트' 를 사용한다. 그럼, 이 과목에서 배운 내용을 일차별로 정리해보겠다. 웹 개발은 크게 두가지로 나뉘어진다. 프론트엔드, 백엔드 이 둘을 합치면 풀스택이라고 한다. 아래에서 설명해보겠다. 프론트엔드 프론트엔드는 소프트웨어나 웹 애플리케이션의 사용자 인터페이스(UI)를 담당하는 부분으로, 사용자가 직접 상호작용하는 영역이다. 웹 페이지의 디자인, 레이아웃, 콘텐츠 표시 등을 담당하며, 주로 웹 개발에서는 HTML, CSS, JavaScript를 활용하여 프론트엔드를 개발한다. 1. HTML (HyperText Markup Language): 웹 페이지의 구조를 정의하는 언어로, 텍스트, 이미지.. 2023. 12. 26.
JDBC, MyBatis, JPA 의 차이 들어가며, JDBC, MyBatis , JPA 이름은 들어보았다. 모두 데이터베이스와 상호작용하는 거 같은데... 뭐가 달라서 이름을 다르게 부르는지 궁금해졌다. 그래서 이번에는 이 세가지를 간단히 정리해보겠다. JDBC JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다. JDBC를 사용하면 SQL 쿼리를 실행하고 데이터베이스와 상호작용할 수 있다. MyBatis MyBatis를 사용하면 DB를 쉽게 다룰 수 있다. 예시) preparedstatement처럼 쿼리문을 복잡하게 입력하지 않고 실제 쿼리문과 유사하게 작성할 수 있다 .preparedstateme.. 2023. 12. 4.
MVC 패턴이 무엇이냐 MVC 패턴이란 무엇일까요 Model - View - Controller 의 약자로, 쉽게 말해 유지보수가 편하도록 만든 하나의 디자인 패턴이다. 아래의 강의를 추천받아, 보고 정리를 해보았습니다. https://www.youtube.com/watch?v=ogaXW6KPc8I Model : 데이터와 관련된 일을 하는 곳 domain, repositpory, service Controller, View가 어떻게 생겼는지 몰라야함 domain, repository, service 역할 다시 생각하기 domain : 객체 기본정보, 기본메서드 repository : 객체 데이터 저장, 꺼내기 service : 해당 객체의 서비스 로직 View : 사용자한테 보여지는 부분을 담당하는 부분 Model, Contr.. 2023. 11. 25.
[Java] 예외처리 try-catch & throw 들어가며, 우아한 테크 코스를 진행하며 예외처리를 자주 쓰게 되었다. 그런데 헷갈리는 개념을 발견했다. try-catch 문과 throw 문 이였다. 우테코 1주차에선 예외처리를 모두 throw문을 사용하여 끝낸 뒤 PR를 날렸다. 그리고 " try-catch 문의 예외처리가 아닌 , 메서드로 예외를 떠넘겼을 경우에 장단점을 말씀해주실 수 있나요? " 라는 리뷰를 받았다. 솔직히 답하지 못하였다. 그래서 그 개념을 정리해보고자한다. Try-catch 문이란? Try-catch문은 예외를 처리하기 위한 구문이다. try { //예외발생할 가능성이 있는 문장 }catch(Exception1 e1) { //Exception1이 발생했을 경우, 이를 처리하지 위한 문장적는다. //보통 이곳에 예외메세지를 출력하.. 2023. 11. 22.
[Spring] Spring Boot, REST API, Oracle, MyBatis, Mapper, DTO 간의 상관관계(?) 들어가며, 예전에 스프링 프로젝트를 살짝 맛보았을 때 사용했던 기술과 프레임 워크가 있었다. 그때 정리해둔 글을 가져와봤다. 정리라고 해도 그냥 용어 뜻 알기? 정도이다. 그땐 참 막막했어서 모든 것을 찾아보며 공부했었다. 현재의 나는 인프런 스프링 강의를 바탕으로 JPA 등을 사용하지만 아래의 것들도 분명 중요한 개념이기에 그때의 글을 가져와보겠다. FrameWork - Spring Boot: 자바 기반의 프레임워크로, 웹 애플리케이션 및 마이크로서비스 개발에 사용됩니다. Spring Boot는 편리한 설정과 개발환경을 제공하며, Spring 기반 애플리케이션을 빠르게 구축할 수 있게 해줍니다. REST API: REST는 Representational State Transfer의 약자로, 네트워크 아.. 2023. 11. 10.
[Java] POJO란 무엇일까? 들어가며, Spring과 Java를 공부하다가 POJO 프로그래밍이라는 것을 들어봤다. POJO가 좋다고 들어본 거 같기도한데... 싶었다. 그래서 오늘은 이 POJO 가 무엇인지 파헤쳐보려한다. POJO가 무엇일까❓ POJO는 순수 Java만을 사용하여 만든 객체이므로 특정 기술이나 환경에 종속되지 않는다. 따라서, 외부 기술이나 규약의 변화에 얽매이지 않아, 보다 유연하게 변화와 확장에 대처할 수 있습니다. 이러한 POJO를 사용하여 비즈니스 로직을 구현하면 객체지향 설계를 제한없이 적용할 수 있으며, 코드가 단순해져 테스트와 디버깅 또한 쉬워진다. 이처럼 비즈니스 로직을 구현하는 데에 POJO를 적극적으로 활용하는 프로그래밍 패러다임을 POJO 프로그래밍이라고 한다. 스프링의 가장 큰 특징은 POJ.. 2023. 11. 10.