분류 전체보기 70

gdg on campus ewha - Spring WIL 7주차

7주차 : JPA 및 Hibernate를 사용한 ORM 통합 1. ORM (Object-Relational Mapping) 이란?ORM : 객체 지향 프로그래밍에서, 객체와 관계형 데이터베이스의 테이블 간 데이터를 자동으로 매핑하는 기술 필요성생산성 향상: 반복적이고 번거로운 SQL 작성 작업 없이 객체 지향 방식으로 데이터베이스 작업 수행 가능.유지보수 용이: 데이터베이스 변경 시 객체-테이블 매핑만 수정하면 되므로 코드 수정 범위가 작아짐.패러다임 불일치 해결: 객체 지향 언어와 관계형 데이터베이스 간의 불일치 문제를 효과적으로 해결.  2. JPA란?자바 표준 ORM 명세로, 애플리케이션과 데이터베이스 간 데이터 처리 로직을 추상화JPA는 데이터베이스 작업을 객체 중심적으로 설계하도록 지원하며, ..

카테고리 없음 2024.12.20

이화여자대학교 졸업프로젝트 스타트 : Front-end 기술회고 - flutter 앱에서 사용자의 결제내역 문자 읽어오기

이번 학기에 나는 3-2를 맞아, 졸업 프로젝트 첫학기인 스타트를  시작하게 되었다.팀에서 내가 기술적으로 담당하는 스택은 Front-end이고, 이 글에서는 우리 팀의 프로젝트에서 스타트 학기말까지 거쳤던 Front-end측의 기술 회고를 다뤄보려고 한다.  1. 주제 소개먼저 본격적인 기술 회고에 들어가기 전에, 우리 팀의 프로젝트 주제에 관해 소개하고자 한다우리팀의 주제는 '예산 설정과 지출관리에 어려움을 겪는 사회 초년생을 위한 개인 일정 및 소비 특성 기반 밀착관리 가계부 서비스" 이다. 한줄소개에서 예측할 수 있듯, 서비스 주제의 타겟층은 예산 수립 및 지출 관리에 익숙하지 않아 어려움을 겪는 사회 초년생(20대 초중반) 이다. 기존의 가계부 서비스(애플리케이션)에서는 - 적절한 예산을 스스로..

카테고리 없음 2024.11.18

스프링 스터디 5주차

스프링 스터디 5주차 : 김영한의 스프링 입문강의 18,19,20강 18강 : h2 database 설치여태까지 했던 방식은 따로 데이터베이스 없이 메모리에 저장하는 방식 이었기에, 껐다가 다시 켜면 데이터가 다 날아감 -> 이제 데이터베이스를 연결해보자db 설치 후 애플리케이션 서버랑 db를 연결할건데, 이 연결에 필요한게 JDBC라는 기술 기술의 변화를 간단히 보면,1) 순수 JDBC(매우 불편, 오래전 방식)2) 스프링 JDBC 템플릿 으로 방식 변화 : 이번주 세션에 배운 방식이 JDBC 템플릿을 이용하여 DB 접근을 분리하는 방식이었다3) JPA : SQL 쿼리 자체를 JPA라는 기술이 날려준 더욱 편리한 방식 - 객체를 쿼리 없이 바로 DB에 저장할 수 있다4) 스프링 데이터 JPA : JPA..

카테고리 없음 2024.11.17

gdg on campus ewha - Spring WIL 6주차

1. DAODAO : 데이터베이스에 접근하는 로직을 비즈니스와 별도로 분리 - SQL 실행, 예외처리 등을 분리하여 수행 -> 재사용성, 유지보수성을 위해 스프링  DAO의 필요성 : 코드 간소화, 예외처리 개선, 테스트 용이성코드 간소화 : 스프링 DAO는 반복적인 JDBC 코드를 줄여줌 : 개발자가 핵심 비즈니스 로직에 집중 가능하도록테스트 용이성 : 의존성 주입을 통해 DAO를 쉽게 모의 객체로 대체 가능 - 단위 테스트 용이  2. JDBCJDBC 템플릿 : 템플릿 메서드 패턴(메소드의 구조를 정의하고, 일부 단계를 하위 클래스에서 구현)을 구현 / 콜백 사용 / 배치 작업 지원(batchUpdate)JDBC 템플릿 사용법 : 의존성 추가 -> DataSource 설정(빈 정의 -> 연결 풀 설정..

dev/백엔드 2024.11.17

스프링 스터디 4주차

스프링 스터디 4주차 : 김영한의 스프링 입문강의 15,16,17강 15강 : 회원 웹 기능 - 홈 화면 추가저번에 만든 멤버 컨트롤러, 의존관계 -> 멤버 컨트롤러로 회원 등록/조회하는거 만들어보자위와 같이 HomeController를 만들고, templates에 home.html을 만든다 Spring Boot에서 / 경로로 요청이 들어오면 home.html을 반환하도록 설정한 것!Spring Boot의 기본 설정에 따라 templates 폴더 안에 home.html 파일을 넣어 두면, 해당 파일이 View Resolver에 의해 렌더링된다. 예를 들어, src/main/resources/templates/home.html 경로에 home.html 파일을 위치시키면, / 경로로 요청이 들어올 때 해당 ..

dev/백엔드 2024.11.10

gdg on campus ewha - Spring WIL 5주차

spring mvc 및 RESTful 서비스1. spring mvc의 개념 및 구조- mvc 패턴 : 어플리케이션을 모델 뷰 컨트롤러로 분리하여 역할을 명확히 하고, 유지보수를 용이하게 하는 패턴- Model : 데이터와 비즈니스 로직 담당, view : 사용자에게 데이터 표시, controller : 사용자 입력을 처리하고, 모델과 뷰를 연결- mvc를 지키며 코딩하는 방법-> 모델은 컨트롤러와 뷰에 의존하지 않아야 (모델 내부에 컨트롤러/뷰와 관련된 코드가 없어야)-> 뷰는 모델에만 의존하고 컨트롤러엔 의존하면 안된다 *spring web mvc : mvc패턴을 웹 애플리케이션에 최적화하여 구현한 프레임워크spring web mvc 동작방식- view Resolver 란? 2. view resolve..

카테고리 없음 2024.11.10

스프링 스터디 3주차

스프링 스터디 3주차 : 김영한의 스프링 입문강의 11,12,13,14강 11강 회원 서비스 개발회원 리포지토리,도메인 활용하여 실제 비즈니스 로직 작성 기본 코드는 위와 같고, 추가적으로  중복 회원 검증 코드를 위와 같이 따로 메소드로 뺄 수도 있다 서비스는 비즈니스에 의존적인 네이밍을, 리포지토리는 기계적인 용어들을 사용 전체회원조회 기능도 구현   12강 회원서비스테스트ctrl + shift + t 단축키! 해당 단축키를 누르면, 테스트를 이렇게 간편하게 하도록 도와준다  테스트를 원하는 메소드를 클릭하고 확인을 누르면, 위와같이 테스트클래스 기본코드를 작성해준다  위와같이 바디를 작성하고 테스트를 하면, 잘 되는걸 확인할수있다  중복회원을 등록시키지 않는 기능이 잘 작동되는 지에 대한 테스트 t..

dev/백엔드 2024.11.03

gdg on campus ewha - Spring WIL 4주차

관점지향 프로그래밍과  커스텀어노테이션  - AOP : 핵심기능과 부가기능 분리하자- 애플리케이션  = 부가기능(중복되어 코드 전반에 흩어져있다) + 핵심기능 / 핵심기능 : 핵심 비즈니스 로직- 부가기능과 적용할 위치를 합쳐 ASPECT로 모듈화- 핵심 비즈니스 로직과 Aspect가 합쳐져서 애플리케이션이 실행됨- AOP : 횡단 관심사를 핵심 비즈니스 로직에서 분리하여 모듈성 향상시키는 프로그래밍 패러다임 / OOP 보완 / Aspect라는 특별한 객체로 모듈화- Aspect : 부가기능을 모듈화한 것 - Advice(what,when) + Pointcut(where)- Tartet : aspect가 적용될 객체(클래스,메소드..)- Advice : aspect가 특정 조인포인트에서 해야하는 부가기능..

dev/백엔드 2024.10.06

스프링 스터디 2주차

스프링 스터디 2주차 : 김영한 스프링 입문강의 8,9,10강 8강 : 비즈니스 요구사항 정리데이터 : 회원 id,이름기능 : 회원등록, 조회아직 데이터 저장소 선정되지 않음(시나리오)   일반적인 웹 애플리케이션 계층 구조- 컨트롤러 : 웹 mvc의 컨트롤러 역할- 서비스 : 핵심 비즈니스 로직 구현(ex.회원id 중복 금지 로직 등)- 도메인 : 회원,주문,쿠폰 등등 주로 db에 저장되고 관리되는 비즈니스 도메인 객체- 리포지토리 : db에 접근, 도메인 객체를 db에 저장하고 관리함  클래스 의존관계- 회원 비즈니스 로직에 회원서비스가 있고, 회원 리포지토리(회원을 저장하는 것)는 인터페이스로 구현 -> 이유 : 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 추후 변경할 수..

dev/백엔드 2024.10.05

스프링 스터디 1주차

스프링 스터디 1주차 : 김영한 스프링 입문강의 5,6,7강 5강 : 정적컨텐츠1) 스프링 웹개발 기초- 웹개발 기초의 3가지 방식 : 정적컨텐츠(서버에서 하는 것 없이 파일을 그대로 웹브라우저에 내려주는 것), MVC와 템플릿 엔진(가장 많이 사용, HTML을 서버에서 프로그래밍하여 바꿔서 내려주는 것 - 컨트롤러, 모델,뷰가 필요), API(안드로이드 등의 앱개발자와 협업 시 - JSON이라는 데이터 구조 포맷으로 클라이언트에게 데이터 전달 - react,vue 등에서 많이 사용, 혹은 서버끼리 통신시(서버끼리의 통신에선 html이 필요없으므로)) 2) 정적 컨텐츠- resources/static에 hello-static.html을 넣고, 이걸 그대로 전달- localhost:8080/hello-st..

dev/백엔드 2024.10.04