본문 바로가기

Develop60

@Configuration 과 @Bean @Configuration - 클래스에 붙히는 어노테이션 - @Bean 을 사용할 때, 함께 사용해줘야 한다. @Bean - 메소드에 붙히는 어노테이션 - 메소드에서 반환되는 객체를 스프링 빈에 등록한다. 보통 언제 쓰임? 외부 라이브러리나, 프레임워크에서 만든 클래스를 등록할 때! ex) JdbcTemplate 실제로 JdbcTemplateConfiguration.class를 확인해보면 @Configuration과 @Bean을 확인할 수 있다. 그럼 @Service와 @Repository는 언제 쓰는데? → 개발자가 직접 만든 클래스를 스프링 빈으로 등록할 때 사용한다. 참고 글 : https://iron-mentalman.tistory.com/entry/Spring-%EC%9D%BC%EB%B0%98-.. 2024. 1. 10.
[Spring] @Primary 어노테이션 전제조건 1. Controller/ Service/ Repository로 구성되는 계층형 구조를 사용한다고 가정한다. 각 파일의 역할은 다음과 같다. controller → api 진입시점 service → 예외처리 담당 Repository → SQL(DB통신) 담당 2. 각 레포지토리에는 통일된 인터페이스가 주입된다. (implements) 탄생배경 스프링의 IoC(Inversion of Control) 제어의 역전 속성을 이해해야 한다. 제어의 역전이란, 직접 특정인스턴스를 주입하지 않아도 스프링 컨테이너가 대신 생성자를 통해 적절한 레포지토리를 탐색하여 주입해준다는 것을 의미한다. 그렇다면? 만약 2가지 이상의 레포지토리가 같은 인터페이스를 상속받은 상태에서, Service 클래스가 해당 인터페이스.. 2024. 1. 10.
3. ToDoApp / 생성 기능 만들기 todo 생성은 제목, 설명, 중요도를 입력해야 하기 때문에 입력 폼이 필요합니다. 따라서 1에서 미리 세팅해둔 todo/forms.py의 내용을 작성할 예정이다. 1. Todo 생성 템플릿 만들기 todo/forms.py 에는 다음과 같이 내용을 작성한다. from django import forms from .models import Todo class TodoForm(forms.ModelForm): class Meta: model = Todo fields = ('title', 'description', 'important') 이젠 템플릿을 작성할 예정인데, todo_post.html 로 템플릿을 만든다. ※ form.as_p 의 형태로 작성하면 태그 꼴로 템플릿에 폼이 자동으로 생성되는 기능 이용하.. 2023. 9. 21.
2. TodoApp / 상세조회기능 만들기 1. Templates 생성 todo_detail.html로 템플릿 생성 TODO 목록 앱 TODO 상세보기 {{ todo.title }} {{ todo.description }} 목록으로 2. 뷰 작성 Todo의 pk인 id를 기반으로 Todo 객체를 찾아 todo_detail.html로 전달 할 수 있도록 작성하고, todo_list.html 버튼에 링크를 넣는다. def todo_detail(request, pk): todo = Todo.objects.get(id=pk) return render(request, 'todo/todo_detail.html', {'todo': todo}) {{ todo.title }} 3. Todo 상세 조회 URL 연결하기 from django.urls import p.. 2023. 9. 21.
1. TodoApp 만들기 _ 전체조회 템플릿 만들기 세팅은 Django(exercise) 글들 참고해주세요 Django.restAPI (with python/) _DRF 프로젝트 세팅 (tistory.com) Django.restAPI (with python/) _DRF 프로젝트 세팅 목표 : 파이썬 + Django를 이용하여 restful한 api를 만들어보고 나만의 todo app 개발 ( +@ DRF개념을 이해하고 응용해보자. ) 운영체제 : windows64bit 파이썬 버전 : 3.11.5 ( 최소 3.8.0 이상) Django 버전 : 3.2.10 DR iron-mentalman.tistory.com Todo앱 목표 CRUD 기능 탑재 Bootstrap 사용하여 더 멋진 템플릿 구현 ※ 작업순서는 템플릿 > 뷰 > url 순서로 진행 1. To.. 2023. 9. 19.
7. 사진 게시물 수정 기능 만들기 1. 템플릿 기존 photo_post.html 그대로 이용. 2. 뷰 def photo_edit(request, pk): photo = get_object_or_404(Photo, pk=pk) if request.method == "POST": form = PhotoForm(request.POST, instance=photo) if form.is_valid(): photo = form.save(commit=False) photo.save() return redirect('photo_detail', pk=photo.pk) else: form = PhotoForm(instance=photo) return render(request, 'photo/photo_post.html', {'form': form}) 설.. 2023. 9. 17.
반응형