본문 바로가기

java

(62)
Java Spring 에서의 Bean 이란? 안녕하세요! 즐거운 주말이 되어 오늘도 포스팅합니다! 오늘의 주제는 저의 지난 포스팅이나 다른 Spring 관련된 내용에서 늘 등장하는 Bean 이란 어떤것인지에 대해 알아보려고 합니다!  Bean 은 우리 모두가 알고있듯 '콩' 이란 의미이죠? 또한 Java 를 보면 항상 나오는 커피잔 로고를 보신 적 있을 겁니다. 별로 이론적인 내용과는 상관없긴 하지만 자바가 커피한잔을 의미한다고 치면 Bean 은 아마도 '커피콩'의 '콩'을 의미하는 것 같습니다.  이제 좀 더 이론적인 내용으로 들어가보겠습니다. Spring 에서 Bean 이란 무엇인가요?"Spring 에서 Bean 이 뭔가요?" 라는 질문은 초보자뿐 아니라 중급 개발자에게도 한 번쯤 다시 짚고 넘어갈 필요가 있는 중요한 주제입니다. Spring ..
Spring Framework 와 Spring Boot (2) 안녕하세요! 지난 포스팅에 Spring Framework 와 Spring Boot 에 대한 내용을 포스팅하다 글이 길어져서 Spring Boot 에 대한 내용은 이번 포스팅에서 진행하도록 하겠습니다. 지난 포스팅과 이어지기 때문에 앞선 포스팅도 읽어주시면 감사하겠습니다! https://wanglan.tistory.com/entry/Spring-Framework-%EC%99%80-Spring-Boot Spring Framework 와 Spring Boot (1)이번 포스팅에서는 Spring Framework 와 Spring Boot 에 대한 내용을 포스팅 해보려고 합니다. Spring Framework 의 등장 배경과 진화 과정, 장단점, 철학, 비판 등 Spring Boot 에 도달하기 까지의 과정을 알..
Spring Framework 와 Spring Boot (1) 이번 포스팅에서는 Spring Framework 와 Spring Boot 에 대한 내용을 포스팅 해보려고 합니다. Spring Framework 의 등장 배경과 진화 과정, 장단점, 철학, 비판 등 Spring Boot 에 도달하기 까지의 과정을 알아보겠습니다. 1. Spring Framework 란? Spring Framework 는 자바 플랫폼에서 기업용 애플리케이션을 개발하기 위한 범용 애플리케이션 프레임워크입니다.이름의 이유는 과거 기업용 어플리케이션 개발을 위해  Java EE(엔터프라이즈 에디션)의 스펙을 구현한 EJB를 통한 개발을 진행할 때의 어려움과 복잡함을 개선하고, EJB 시절의 어려움을 '겨울'에 빗대어 새로운 시작인 '봄'을 생각하며 작명을 했다고 합니다. 저는 공대 출신이기에 처..
[프로젝트] 식당 예약 및 웨이팅 플랫폼 개발 - 주제선정 이번에 팀원들과 새로운 프로젝트에 대한 개발을 시작하면서, 프로젝트 설계의 전반적인 과정과 저희 팀에서 오고 갔던 기술적 의사결정의 과정들, 개선되는 점들에 대해서 정리하려고 합니다. 지금은 프로젝트 주제가 식당 예약 및 웨이팅이 가능한 플랫폼을 만드는 것으로 확정되었지만, 주제 선정 및 이번 프로젝트에서 팀원이 각각 얻어가고 싶은 스킬이나 역량에 대한 부분 부터 고민이 많았던 것 같습니다. 🎬 주제 선정의 과정처음 여러 주제를 던져보기 전, 팀원별로 각각 이번 프로젝트에서 해보고 싶은게 어떤 것인지에 대해서 말해보았습니다. 본인: Kafka 나 RabbitMQ 같은 라이브러리를 사용해서 실시간 메세지 관리 기능을 구현하는 것팀원1: ElasticSearch 를 활용한 조회 시스템 성능 개선팀원2: M..
Spring - JDBC Template `JdbcTemplate` 은 Spring에서 제공하는 데이터베이스 접근 도구로, JDBC 작업을 단순화하고 오류 처리를 일관되게 해줍니다. 기본적인 SQL 쿼리 실행, 데이터 조회, 업데이트 등을 간단하게 수행할 수 있으며, 커넥션 관리, 자원 해제 등의 작업을 자동으로 처리합니다. 1. JdbcTemplate의 주요 기능과 장점커넥션 및 리소스 관리 자동화: JdbcTemplate은 데이터베이스 연결을 자동으로 관리하고 SQL 실행 후 자원을 해제합니다.간결한 코드 작성: SQL 실행을 위한 복잡한 Connection, Statement, ResultSet 처리가 필요 없어집니다.일관된 예외 처리: SQL 예외를 Spring의 DataAccessException 계층으로 변환하여 일관성 있는 예외 처..
Spring - @Transactional `@Transactional` 은 Spring에서 제공하는 트랜잭션 관리 어노테이션으로, 특히 데이터의 `일관성`을 보장하기 위해 주로 사용됩니다. `트랜잭션(transaction)`은 데이터베이스 작업을 수행하는 중간에 오류가 발생하면, 수행한 작업이 취소되고 데이터가 원래 상태로 복원될 수 있도록 하는 개념입니다. 즉, `모든 작업이 성공`해야만 변경 사항이 데이터베이스에 반영되고, 실패하면 전부 취소됩니다. 이를 통해 데이터의 신뢰성과 무결성을 보장합니다. 1. 트랜잭션의 기초트랜잭션은 데이터베이스 작업에서 다음과 같은 ACID 특성을 만족해야 합니다:Atomicity (원자성): 트랜잭션 내 모든 작업은 하나의 단위로 수행됩니다. 일부 작업만 성공하고 나머지가 실패할 수는 없습니다. 모두 완료되거..
[기능 개선] - Refactoring, Test, AOP 프로그램을 개발하고, 기능이 문제없이 구현되었을 때 개발자들이 다음으로 고려할 수 있는것은 어떻게 하면 성능을 향상시킬 수 있을까? 입니다. 이를 행하기 위해선 다양한 방법이 존재합니다. 이번 글에선 Refactoring, Test, AOP 에 대해서 알아보도록 하겠습니다.1. Refactoring리팩토링은 소프트웨어의 외부 동작을 변경하지 않으면서 내부 구조를 개선하는 프로세스 입니다. 주로 코드의 가독성, 유지보수성, 확장성을 높이기 위해 사용됩니다.실제로 적용할 수 있는 방법은 Early Return, 불필요한 If-else 문 및 주석 최소화, 코드 포맷팅, 일관된 네이밍 컨벤션 적용등이 있습니다. 방법 메서드 추출: 중복된 코드 블록을 메소드로 추출하여 코드의 재사용성을 높이고 가독성을 개선합니..
[해시 테이블] - 개인정보 수집 유효기간 `해시 테이블`(혹은 해시 맵)은 자료 구조의 일종으로, 키-값 쌍을 저장하는 데 사용됩니다. 해시 테이블은 매우 빠른 데이터 조회, 삽입 및 삭제를 지원하며, 평균적으로 `O(1)`의 시간 복잡도로 작업을 수행할 수 있습니다. 아래에서 해시 테이블의 주요 개념, 작동 원리 및 장단점에 대해 자세히 설명하겠습니다.  1. 기본 개념키(Key): 데이터를 식별하는 데 사용되는 값. 키는 고유해야 하며, 중복이 없어야 합니다.값(Value): 키와 연관된 데이터. 하나의 키는 하나의 값과 연결됩니다.해시 함수(Hash Function): 키를 해시 값으로 변환하는 함수. 해시 값은 해시 테이블의 인덱스를 결정합니다.버킷(Bucket): 해시 테이블에서 키와 값이 저장되는 공간. 각 버킷은 여러 키-값 쌍을 ..