목록Dev (25)
한다 공부
스프링 MVC를 적용하기 전에, 태초에는 MODEL 1 아키텍처 구조와 MODEL 2 아키텍처 구조라는 것이 있었다. ~ Model 1 ~model 1 아키텍처는 JSP와 JavaBeans만을 이용하는 웹 개발의 가장 단순한 구조이다. Bean은 자바에서의 객체를 의미하며, JavaBeans는 DB연동에 사용되는 자바 객체들인 DAO와 VO 클래스를 의미한다. 여기서는 JSP가 Controller와 View의 기능을 모두 담당한다. JSP는 HTML에 Java코드를 사용하게 할 수 있는 것이며, 자바코드는 으로 감싸야한다. 이를 스크립틀릿 태그라고 한다. 스크립틀릿으로 자바 코드를 감싸지 않으면, 에러는 나지 않지만 자바 코드가 그냥 화면에 텍스트로 뿌려진다.. 는 expression이라고 하는데, 안에..
비즈니스 로직을 구현하다보면 로깅, 예외처리, 트랜잭션 처리 등 같은 코드가 반복되는 경우가 있다. AOP는 이처럼 공통되는 로직을 묶어서 관심사를 분리하고, 코드의 응집도를 높이는 것이다. 낮은 결합도와 높은 응집도를 위해. 로깅, 예외처리, 트랜잭션 등의 반복되는 코드를 횡단 관심이라고 하고, 핵심 비즈니스 로직을 핵심 관심이라고 한다. ~ PointCut ~ 우선 포인트 컷을 설명하기 전에, 조인포인트에 대해 알아보자. 조인포인트는, 비즈니스 클래스가 가지고 있는 모든 비즈니스 메소드를 의미한다. 포인트컷은 필터링된 조인포인트, 즉 필터링된 비즈니스 메소드를 의미한다. 예를 들어 로깅 기능을 CRUD 중 C와 D에만 적용하고 싶다면, C와 D에 포인트컷을 지정해야 하는 것이다. xml에 이를 설정할..
최근에 스프링을 다시 공부할 일이 생겨서 공부하면서 배운 것을 요약 정리해봤다.. 아직 갈길이 멀구나.. ✨ ~ 스프링의 탄생 ~예전에는 EJB라는 것을 사용해서 개발을 했다. 하지만, 1. 복잡한 스펙으로 많은 학습 시간 필요, 복잡한 유지보수 2. EJB를 실행하기 위한 WAS의 비용 문제 (수천만원 이상..) 3. 메모리를 많이 사용하기 때문에 성능이 좋지 않고, 이를 개선하기 위한 여러 디자인패턴 숙지 필요 등등의 단점으로 EJB를 사용하던 시절은 개발자들에게 겨울이었다고 한다. 그러면서 2005년 개발자들의 요구가 충분히 반영된 오픈소스 프레임워크가 등장하면서 개발자들에게 봄이 찾아왔다. 그래서 이 오픈소스 프레임워크의 이름이 스프링이라고 한다. 스프링은 POJO를 사용한다. POJO란, Pla..
이번 글의 키워드 : Spring Security, 회원가입, Form에서 Controller로 데이터 전달이 안됨, Chat GPT 스프링 시큐리티를 사용해서 회원가입 기능을 구현해봅시다. 우선 완성된 디렉토리 구조는 다음과 같습니다. 우선 회원가입을 진행하기 위해, 어떠한 정보가 필요한지 생각해봅시다. 제가 필요한 정보는 사용자 아이디, 비밀번호, 이름, 전화번호, 등급 (vvip, vip .. ), 주소, 관리자인지 확인하는 정보 입니다. 이러한 사용자 정보를 Member라는 엔티티를 만들어 저장해봅시다 Member.java는 다음과 같습니다. package store.unibly.web.member; import lombok.Builder; import lombok.Getter; import lo..
CSR(Client Side Rendering) 은 주로 REST API를 사용하며 JWT 방식으로 로그인을 구현한다 SSR(Server Side Rendering) 은 타임리프와 같은 템플릿엔진을 사용하며 쿠키 세션 방식으로 로그인을 구현한다 그리고 스프링을 사용한다면 Spring Security를 통해 비교적 쉽게 인증과 인가를 구현할 수 있다 이번 기회에 개념에 대해 정리를 하고자 한다. 웹 백엔드 부스트코스 무료 강의 www.boostcourse.org 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 ..
스프링은 초기 설정이 아주 어려운데, 스프링부트의 출시로 손 쉽게 (?) 설정을 할 수 있게 되었다. 이러한 스프링 부트의 초기 설정을 해보자! 우선 프로그래밍 코드를 작성할 수 있는 IDE인 IntelliJ를 설치하자 https://www.jetbrains.com/ko-kr/idea/download/#section=windows 다운로드 IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE www.jetbrains.com 여기서 다운받을 수 있으며, 학생 인증을 통해 Ultimate 버전을 무료로 사용할 수 있다. 그리고 JDK를 설치하자. 아무생각없이 JDK 19가 최신 버전이라 다운받았는데, 이후 Gradle과 버전 충돌이 났다. (Gradle이란? 일종의 빌드 자..
무한히 입력을 받다가 더 이상 입력이 없을 때 프로그램을 종료하려면..? #include using namespace std; int main(){ int a; while(cin>>a){ cout
AWS 를 쓰다보면 사용하다보면 어쩐지 사용하던 기능만 사용하게 된다. EC2 .. S3 .. RDS .. ELB .. 그런데 생각보다 람다를 사람들이 많이 사용해서 함 사용해보고 싶었다,, 그러던 와중 마침 클라우드 컴퓨팅 수업에서 AWS 람다를 다루는 과제를 내주셔서 과제하면서 공부한 것 정리 !^^ Lambda AWS에서 Lambda를 검색해 들어가보자 그리고 오른쪽 상단의 함수 생성을 누르자. 함수 이름을 작성하고, 원하는 언어를 선택하고 아래 함수 생성을 누르자.. 그러면 위와 같이 람다 함수를 입력할 수 있는 에디터창이 나온다. 람다 함수로 넘어간 json data는 event에 담겨온다. { 'value': 100 } 으로 데이터를 넘겼다면 event['value'] 과 같은 방식으로 접근하..
HTML을 사용한 프론트로부터 데이터를 전달받기 위해 Form을 사용했다. 에전에 백엔드 API 서버를 만들었을 때는 Serializer를 사용했는데 Form과 Serializer는 형태가 유사하다. Form, ModelForm은 HTML 입력폼을 통해 입력에 대한 유효성 검사를 수행하고 주로 Create, Update 등 admin에서 활동이 된다. Serializer, ModelSerializer는 데이터 변환과 직렬화를 지원하는 것이다. 주로 JSON 포맷 입력에 대한 유효성을 검사한다. 프로젝트를 진행하던 중, 내가 원하는 형태는 "날짜, 위치, 능력" 을 하나의 폼에서 데이터를 받아오는 것이었다. 하지만 Nested serializer, 즉 중첩된 시리얼라이저는 지원을 해주지만 Nested fo..
장고는 MTV 패턴을 가지고 있다. Model, Template, View 인데 쉽게 이야기하면 모델은 데이터, 템플릿은 화면, 뷰는 데이터 처리와 같은 로직을 담당하고 있다. 우선 Model을 작성해야 하는데, 이러한 데이터 구조와 데이터간의 관계를 쉽게 나타내기 위해 ERD (Entity Relationship Diagram) 를 작성해보자 ERDCloud ERDCloud Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool. www.erdcloud.com 여기에서 작성하였다. ERD는 아래와 같다. 추후 수정될 여지가 있다.. (여력이 된다면 좋아요 기능, 커뮤니..