본문 바로가기

분류 전체보기

(67)
AJAX와 Jquery로 비동기 댓글달기 웹페이지를 제작할 때, 사용자의 경험을 향상시키는 것은 매우 중요합니다. 이를 위해 AJAX와 jQuery 같은 웹 기술이 자주 사용됩니다. AJAX는 비동기적으로 서버와 통신하여 페이지를 동적으로 업데이트하는 데 사용되며, jQuery는 이를 보다 쉽게 처리할 수 있도록 도와줍니다. 이번 글에서는 AJAX와 jQuery를 사용하여, 블로그나 다른 웹페이지를 보다 동적으로 만드는 방법에 대해 살펴보려고 합니다. AJAX와 jQuery를 사용하면, 더욱 효율적이고 사용자 친화적인 웹페이지를 제작할 수 있습니다. 아래에서는 AJAX와 jQuery의 개념과 이를 사용하여 구현할 수 있는 기능에 대해 자세히 알아보도록 하겠습니다. AJAX란? AJAX는 "Asynchronous JavaScript and XML..
Mock을 이용한 Sliced Test - @WebMvcTest, @JdbcTest Spring Framework와 Sliced Test 스프링에서 테스트를 위해 @SpringBootTest를 이용하곤 합니다. 이 어노테이션을 이용하면 모든 Component를 스캔하여 손쉽게 테스트를 작성할 수 있습니다만, 만약 테스트 하고 싶은 단위가 아주 작은 기능 단위라면, @SpringBootTest를 사용하는 것은 아주 비효율적입니다. 왜 비효율적인지는 @SpringBootTest의 실행 과정에서 알 수 있습니다. @SpringBootTest는 아래와 같은 순서로 실행됩니다. 테스트 클래스의 @SpringBootTest 애노테이션을 분석합니다. 이때, @SpringBootTest는 애플리케이션을 로드하기 위해 필요한 설정 정보를 포함하고 있습니다. 테스트 클래스에서 사용할 빈을 로드합니다. 이..
AOP와 @Transactional 알아보기 안녕하세요, 오늘은 자바 스프링에서 사용되는 @Transactional 어노테이션이란 무엇인지, 작동 원리에 대해서 살펴보겠습니다. Transactional에 대해 알아보기 전에, 한 번도 다룬적 없었던 AOP에 대해서도 다루어 보겠습니다. AOP?(Aspect Oriented Programming) 더보기 AOP는 인프라 로직과 비즈니스 로직을 분리해 모듈성을 높이기 위한 목적으로 사용합니다. 위 문장에서 비즈니스 로직이란 무엇일까요? 비즈니스 로직은 실세계의 규칙에 따라 데이터를 생성·표시·저장·변경하는 부분을 일컫는다라고 합니다. 즉, 데이터의 상태 값을 조작하는 로직으로 볼 수 있겠죠. DB에 데이터를 insert하거나 변경하는 로직은 모두 비즈니스 로직에 해당할 것입니다. 반대로 인프라 로직은 ..
Jar에서만 View의 경로를 찾지 못하는 이유 간단한 스프링 어플리케이션을 작성하다가 생긴 문제점에 대해 공유하고자 합니다. Static 파일이 아닌 templates 파일에 대해서 컨트롤러에서 아래 예시처럼 경로 앞에 "/"가 포함되는지 여부에 따라 jar에서는 뷰를 찾지 못하는 404 에러가 발생했습니다. @GetMapping("/users/list") public String userList(Model model) { model.addAttribute("user", joinService.lookupAllUser()); return "user/list"; // IDE + Jar에서 문제 없이 작동 } } @GetMapping("/users/list") public String userList(Model model) { model.addAttrib..
Spring 프로젝트 AWS EC2 배포하기 - H2 DB 연결 이번 포스팅에서는 H2 DB를 AWS EC2 내부에 데이터베이스로 연결시켜 사용하는 방법을 알아보겠습니다. H2는 mysql와 같은 관계형 데이터베이스(RDBMS)입니다. 오픈소스로 무료로 사용할 수 있으며, 웹 콘솔 기반으로 쉽게 설정해서 사용할 수 있어 소규모의 어플리케이션에서 활용됩니다. 표준 SQL의 대부분을 지원하며(약간의 문법차이는 있습니다.) 용량이 낮아 테스트 환경, 로컬 환경에서도 많이 사용됩니다. 이제, H2를 이용해서 배포하기 위한 환경 설정을 진행해보겠습니다. H2 DB 설정 H2DB는 Java 기반 RDBMS 이므로 자바가 설치되어 있어야 합니다. 먼저, http://h2database.com/html/main.html에서 다운로드 해줍니다. Ubuntu인 EC2에서 사용하므로 A..
Spring 프로젝트 AWS EC2 배포하기 - 인스턴스 생성, 서버 설정 안녕하세요. 오늘은 AWS의 EC2를 이용해서 웹 서버를 무료로 배포하는 방법에 대해서 알아보겠습니다. 아마존의 EC2는 Amazon Web Services의 클라우드 컴퓨팅 서비스 중 하나입니다. EC2는 Elastic Compute Cloud의 약어로, 유연한 컴퓨팅 리소스를 제공하여 개발자 및 기업이 원하는 만큼의 리소스를 빌려서 스케일링이 가능한 애플리케이션을 실행할 수 있도록 한다는 것입니다. AWS EC2를 사용하면 가상 서버를 구축하고 실행할 수 있으며, 이를 통해 사용자는 필요한 만큼의 컴퓨팅 리소스를 언제든지 이용할 수 있습니다. 또한, EC2 인스턴스를 시작하고 중지하고 재시작하는 등의 작업을 쉽게 수행할 수 있으며, 이러한 인스턴스는 다양한 운영 체제를 실행할 수 있습니다. AWS E..
[TIL] 객체 지향 설계 - 사다리 타기 게임 (Java) 1주 동안 코드스쿼드 과정의 사다리 타기 게임을 구현했습니다. 구현하면서 느꼈던 배운 점을 간단히 정리해보겠습니다. Commit과 PR하기 - 작은 커밋 단위, 의미있는 커밋/PR 메시지 Commit은 마치 게임에서 세이브 포인트처럼 git에서 프로젝트의 상태를 저장하고 있는 객체라고 볼 수 있습니다. 언제든지 특정 시점으로 돌아갈 수 있는데요, 작은 규모의 개발 환경에서는 커밋 로그를 잘 남기는 것이 그렇게 중요하지 않을 수 있습니다. 언제 어떤 작업을 했는지 비교적 잘 기억할 수 있으니 말입니다. 그렇지만 프로젝트의 규모가 커지고 여러 사람이 협업을 하게되면, 어느 시점에 누가 어떤 변경사항을 만들었는지 알기 어렵게되고, 따라서 어느 시점으로 돌아가야할지 로그가 잘 남아있지 않다면 찾기 어려울 것입니..
코드스쿼드 CS16 과정 중간 회고 분명 1월 1일에는 오늘부터 갓생산다고 결심을 했지만... 연초에 스스로했던 약속을 지키지 못한 것 같아 슬픕니다. 2개월 동안 코드스쿼드 온라인 과정을 진행하면서 느낀 부족한 점을 반성해서 아래 목표들을 세워보았습니다. 1. 건강 관리 하기 점점 크게 느끼고 있는 부분입니다. 앉아있는 시간이 길다보니 개발자의 고질병인 거북목과 라운드 숄더가 가속화되는 기분입니다. 자세가 좋지는 못한 것 같은데, 더 안좋아지기 전에 운동의 필요성을 실감하고 있습니다. 1~2월에는 CS공부를 하느라 못했지만(말도 안되는 핑계입니다), 3월부터는 꼭 주기적으로 운동을 하려고합니다. 개발자가 되는 길은 마라톤처럼 천천히 나아가야하는 길입니다. 마음은 준비가 되었지만 몸은 준비가 되지 못했을 수도 있으니까요. 2. 계획과 루틴..