𝑾𝑬𝑩

𝑾𝑬𝑩/𝑆𝑃𝑅𝐼𝑁𝐺

[프로젝트] 빌드 관리 도구 선택 - Maven VS Gradle

이전에 스프링부트 프로젝트를 진행할 때, Maven을 사용하여 개발했었다. Maven과 Gradle이 대표적인 JAVA의 빌드 관리 도구라는 것은 알고 있었지만, 그 둘의 정확한 차이는 무엇인지, 뭐가 다른 건지 궁금해졌다. 오늘 포스팅에서는 Maven과 Gradle, 그리고 그 둘의 차이점을 비교해보고 새로 시작하는 프로젝트에서 어떤 빌드 관리 도구를 선택하는 게 이로울지 정리해보는 시간을 가지도록 하자! 빌드란 무엇일까? 먼저, 빌드(Build)의 단어 뜻은 '짓다'라는 뜻으로 모두가 알고 있을 것이다. 건물을 짓는다고 생각을 해볼 때, 우리는 설계도가 필요하고, 기초 공사를 하고, 철근을 세우고, 벽을 세우고... 등 다양한 과정들을 거쳐 완성하게 된다. 프로그래밍에서도 마찬가지이다. 빌드란 소스코..

𝑾𝑬𝑩/𝑃𝑟𝑜𝑗𝑒𝑐𝑡

[프로젝트] 데이터베이스 선택 - RDBMS VS NoSQL

6개월 전 진행한 라스트프레시라는 프로젝트에 대해 기술적으로 아쉬움이 많이 남는다... 지금도 많이 부족한 나지만, 다시 코드를 보면 부족한 점이 정말 많이 보인다... ㅠㅠ 공부를 할 수록 어떤 점에서 개선이 필요한지 눈에 보이기 시작하고, '이건 이렇게 할 걸' 하는 후회가 들어, 다음 진행할 프로젝트에 대해서는 무언가를 결정할 때 이유를 생각해보고 정리하면 좋겠다는 생각이 들었다. 그래서 오늘 새롭게 생성한 Project 카테고리에서는, 내가 추후 프로젝트를 진행하면서 생각하고 도입 및 개선한 내용 등을 기록할 예정이다! 다시 본론인 데이터베이스로 돌아와서, 여태 한 프로젝트들도 그렇고 DB에서 MySQL을 사용했었다. 사실 토이 프로젝트를 하면서 Oracle도 사용해 본 적이 있지만, 항상 프로젝..

𝑾𝑬𝑩/𝑆𝑃𝑅𝐼𝑁𝐺

[Spring] AOP

프록시 패턴에 대해 공부하면서, AOP에 대해 자세히 정리해봐야겠다고 느꼈다! 오늘은 AOP에 대해서 알아보도록 하자. 서비스에서 필요한 내용은 비지니스 로직이라고 불리는 핵심 기능만 수행할 수 있으면 된다. 그 외 권한, 사용 시간 체크, 트랜잭션을 거는 것 등은 인프라 로직이라고 한다. 인프라 로직 애플리케이션의 전 영역에서 나타날 수 있음 중복코드를 만들어낼 가능성 때문에 유지보수가 힘들어짐 비지니스 로직과 함께 있으면 비지니스 로직을 이해하기 어려워짐 예를들어 위 기능 들에서 공통적으로 나타나는 색깔 블럭들은 중복되는 메소드, 필드, 또는 코드 등이다. 만약 로그인 기능에서 성능 검사에 대한 코드를 수정해야한다면, 글 작성 기능과 삭제 기능의 성능 검사도 전부 찾아 수정해야한다. 이는 SOLID원..

𝑾𝑬𝑩/𝑆𝑃𝑅𝐼𝑁𝐺

JPA 와 MyBatis 의 차이 (ORM, SQL Mapper)

저번 달, 생애 처음으로 봤던 한 기업의 면접에서 이런 질문을 받았다. 'JPA와 MyBatis의 차이를 설명해줄 수 있나요?' 나는 프로젝트에 JPA를 사용했었고, 그에 따라온 꼬리 질문이었다. 면접 전 JPA와 MyBatis의 차이에 대해서 준비를 하고 갔음에도 불구하고, 막상 면접을 하니 '내가 이해한 정도' 의 차이점만 말할 수 있더라. 그래서 오늘 이 기회에 JPA와 MyBatis에 대해 더 자세히 정리해보고자 한다. JDBC 먼저 JPA 와 MyBatis 를 얘기하기 전에, MyBatis 이전에 사용되었던 JDBC에 대해 간단히 정리해보자. 자바에서는 자바를 이용해서 DB를 사용하기 위해 기본적으로 JDBC 라이브러리가 제공되었다. 하지만 JDBC는 가독성이 떨어지고 반복적인 코드가 만들어질 ..

𝑾𝑬𝑩/𝑆𝑃𝑅𝐼𝑁𝐺

[Spring] REST API, REST, RESTful 이란?

REST ? REST 는 Representation State Transfer 의 약자로, 소프트웨어 프로그램 아키텍처의 한 형식이다. 문자 그대로는 Representation (표현, 묘사) State (상태) Transfer (전송) 을 뜻하고, 풀어서 말하면 웹 어플리케이션의 어떤 상태 또는 정보를 전송하는 표현 방식이다. REST 는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에, 단순하고 가벼운 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다. REST 의 구체적인 개념 HTTP URI(웹의 모든 자원들을 하나하나 가리킬 수 있는 고유한 주소. ex_ /users/mypage/1 )를 통해 자원을 명시하고, HTTP Method를 통해, 자원에 대한 작업 CRUD..

𝑾𝑬𝑩/𝑆𝑃𝑅𝐼𝑁𝐺

[Spring] JAR or WAR 차이

JAR ? WAR? 먼저 JAR 는 JAVA Archive, WAR 는 Web Application Archive 의 약자로, 모두 JAVA 의 jar 툴을 이용한 압축(아카이브) 파일이다. 즉, 어플리케이션을 쉽게 배포하고 동작할 수 있도록 관련 파일 (리소스, 속성 파일 등)을 패키징 한 것이다. JAR (Java Archive) .jar 파일에는 Class 와 같은 JAVA 리소스, 속성파일, 그리고 라이브러리 파일들이 포함되어 있다. 쉽게 말해, JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일이라고 할 수 있다. 또한 jdk에 포함된 JRE(Java Runtime Environment) 만 있어도 실행이 가능하다. (이게 아주 편리하다!) WAR (Web Application..

𝑾𝑬𝑩/𝑆𝑃𝑅𝐼𝑁𝐺

[Spring] DI, 의존성을 주입하는 여러가지 방법

# DI 란? DI 는 Dependency Injection 의 약자로, 말 그대로 '의존성 주입'을 의미한다. 스프링에서는 클래스 간의 의존 관계를 스프링 컨테이너를 통해 자동으로 연결해주는 덕에, 의존성을 주입해야하는 것을 알아야 한다는 것이다. 의존성을 주입하는 방법에는 여러가지 방법이 있는데 차근차근 따라해보자. 먼저 InteliJ 를 실행시키고 (인텔리제이 다운로드는 아래 링크를 참고하자) https://www.jetbrains.com/ko-kr/idea/download/#section=mac 다운로드 IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE www.jetbrains.com src > main > java > 의 경로에 폴더를 하나 생성해주고, 거기..

기누
'𝑾𝑬𝑩' 카테고리의 글 목록