목록전체 (156)
Dazzling 개발 노트
프로젝트를 진행하다가 데이터베이스의 다른 테이블에 접근하는 일이 필요할 때, 관련 서비스를 통해서 레포지토리를 통해 접근, 혹은 사용중인 서비스에서 레포지토리를 바로 호출해서 접근. 이 두 가지 접근에 대해 의견이 나눠졌다. 그래서 각각의 방법이 가진 특성과 그로 인한 장단점을 조사해봤다. A 서비스가 B 서비스를 거쳐 B 레포지토리에 접근하는 방식 이 방법은 서비스 계층의 캡슐화와 추상화를 잘 유지하면서 다른 도메인의 로직에 손쉽게 접근할 수 있도록 해준다. B 서비스는 B 테이블의 비즈니스 로직을 담당하며, A 서비스는 B 서비스가 제공하는 인터페이스를 통해 필요한 로직을 재사용할 수 있다. 장점: 1) 코드 재사용성의 증가 B 테이블과 관련된 비즈니스 로직이 B 서비스에 집중되어 있어, 다른 서비스..
스프링 프레임워크에서 제공하는 @Transactional 어노테이션은 데이터의 일관성과 무결성을 유지하기 위해 트랜잭션을 선언적으로 관리하는 강력한 메커니즘을 제공한다. 트랜잭션(Transaction)이란? 트랜잭션은 데이터베이스의 상태를 변화시키는 하나의 작업 단위로, 여러 작업들이 모두 성공적으로 완료되거나, 하나라도 실패할 경우 전체 작업이 취소(롤백)되는 것을 보장한다. 트랜잭션은 일반적으로 ACID(Atomicity, Consistency, Isolation, Durability) 속성을 만족해야 한다. @Transactional 어노테이션의 역할 @Transactional 어노테이션은 메소드나 클래스 레벨에 적용되어, 해당 범위의 실행을 하나의 트랜잭션으로 묶는다. 이 어노테이션을 사용함으로써..
스프링 프레임워크에서 @ResponseStatus 어노테이션은 컨트롤러 메서드나 예외 클래스에 적용되어 HTTP 응답의 상태 코드를 명시적으로 지정한다. 이 어노테이션을 사용함으로써 개발자는 특정 조건에서 원하는 HTTP 상태 코드를 클라이언트에게 반환할 수 있다. 다음은 @ResponseStatus와 함께 자주 사용되는 몇 가지 HTTP 상태 코드와 그 특징들이다. 200 OK 성공적인 요청과 응답을 나타낸다. @ResponseStatus(HttpStatus.OK)로 명시할 수 있으며, 일반적으로 조회 작업(GET 요청)이 성공적으로 완료되었을 때 사용된다. 201 Created 새로운 리소스가 성공적으로 생성되었음을 나타낸다. @ResponseStatus(HttpStatus.CREATED)를 사용하여..
Spring MVC는 Java 기반 웹 개발을 위한 강력한 프레임워크로, Model-View-Controller(MVC) 패턴에 기반하여 웹 애플리케이션의 구조를 체계적으로 구성한다. 이 프레임워크는 웹 애플리케이션의 개발과 유지보수를 용이하게 만들어 준다. Spring MVC의 핵심 개념 Model-View-Controller(MVC) 패턴 Model: 애플리케이션의 데이터와 비즈니스 로직. 데이터의 저장, 수정, 삭제 같은 기능을 담당하며, 상태의 변경을 View와 Controller에 알린다. View: 사용자에게 정보를 표시. HTML, JSP와 같은 웹 페이지로 구성되며, 사용자의 입력을 받아 Controller에 전달한다. Controller: 사용자의 입력과 이벤트를 처리. Model을 업데..
1. Spring Security 스프링 기반의 애플리케이션의 보안(인증과 권한)을 담당하는 프레임워크 필터(Filter)를 기반으로 동작해 스프링 MVC와 분리되어 관리 및 동작한다. 필터(Filter) Dispatcher Servlet으로 가기 전에 적용되어 가장 먼저 URL 요청을 받지만, Interceptor는 Dispatcher와 Controller 사이에 위치한다. Client (Request) → Filter → DispatcherServlet → Interceptor → Controller 관련 용어 Principal : 접근 주체 보호된 대상에 접근하는 유저 Authentication : 인증 증명 Authorization : 인가 권한 부여, 허가 Role : 권한 인증된 주체가 애플리..
[2023년 회고록] 안녕하세요. 2023년을 돌아보며 회고록을 적어보고자 합니다. 이번 해에 저는 2년 차 개발자였다가, 취업준비생이었다가, 지금은 아카데미 학생이 되었습니다. 정말 많은 변화가 일어났고, 처음 도전하는 것도 많았으며, 새로운 사람들과 대단한 분들도 많이 만났습니다. 이것저것 적다보니 꽤 길어졌네요 ..ㅎㅎ 👉 [ 첫 연봉협상 ] ✔️ 기간: 2023년 2월 ✔️ 회사: 싸이웍스 인생 첫 연봉협상에서 예상보다 높은 금액을 받을 수 있었습니다. 회사에서의 꾸준한 노력과 성과를 인정받은 것 같아 매우 기쁘고 만족스러웠습니다. 많은 업무로 팀 분위기가 어수선하던 시기에 모두가 기피하는 신입 교육을 자원한 것도 인정을 받은 것 같습니다. 이 경험을 통해 저도 많이 성장하고, 다양한 일에 더욱 ..
최근에 키워드를 입력하면 자동으로 이미지를 생성해주는 서비스가 많아졌다. 내가 사용해 본 것은 Karlo, Microsoft Bing 등이 있는데 이 외에도 최근에 Toss에서 만든 토스트도 있다. 오늘은 microsoft의 Bing 활용 방법을 간단하게 적어보고자 한다. 1. 해당 Url에 접속한다. https://www.bing.com/images/create?FORM=GDPGLP 2. 영어로 원하는 이미지의 키워드, 내용을 적는다. 영어로 입력하는 것이 부담이 된다면 파파고나 chatGPT를 활용해 원하는 키워드를 번역해서 적으면 된다. 내용이 디테일할수록 원하는 이미지에 가깝게 생성이 된다. 3. 생성된 이미지 중 원하는 것을 선택하여 다운로드한다. 아주 쉽고 빠르게 예쁜 이미지를 만들어냈다. 프..
포트폴리오를 어떻게 정리할지 찾아보다가, GitHub ReadMe.md를 정적 페이지로 배포할 수 있는 방법을 알게되었다. 방법도 아주 쉬우니 쉽게 따라할 수 있다. 1. 배포할 repository의 Settings 클릭 2. Pages 클릭 3. Branch를 None > main으로 변경 후 Save 클릭 4. 새로고침 후 페이지 상단의 배포된 Url 확인 (5분 정도 소요) 5. 웹 페이지 확인 Url을 통해 접속하면 Readme.md파일로 작성한 파일로 페이지가 만들어진 것을 확인할 수 있다! 번외). Repository의 Actions에서 배포된 기록도 조회가 가능하다. GitHub는 정말 다양한 것을 제공해주는 것 같다^^ 알면 알 수록 유용한 서비스다!