일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 조건연산
- mock server
- Postman
- todo project
- Comprehension
- 람다함수
- yaml
- numpy
- 함수
- RDS
- 백엔드 인턴십
- self
- 토이프로젝트
- 프리온보딩
- PYTHON
- 프로그래머스
- sqlalchemy
- 컴프리헨션
- 행렬곱
- cerbot
- 코딩테스트
- Jar배포
- API
- 클래스
- Django
- 파이써닉코드
- spring boot
- 파이썬
- EC2
- 집계함수
- Today
- Total
목록전체 글 (89)
build my life

📌 로그인 & 로그아웃 기능 로그인 했을 때 경우 - 새로운 유저를 생성할 수 있음 로그아웃 했을 경우 - 새로운 유저를 생성하지 못하고 리스트만 확인할 수 있음 위의 기능은 settings.py 파일의 permission_class를 등록해주었기 때문 DjangoModelPermissionsOrAnonReadOnly : 로그인한 유저에 대해서는 장고 모델에 대해서 CRUD가 모두 가능하고 아닌 경우에는 READ만 할 수 있 AllowAny : 로그인의 유무에 상관없이 모두가 CRUD를 가능하도록 함 REST_FRAMEWORK = { # Use Django's standard `django.contrib.auth` permissions, # or allow read-only access for unaut..

프록시 방식 사용해서 코드를 조금 더 줄여보자 1. roxyMode => TARGET_CLASS 설정 2. 오류 났던 부분 원복 3. 오류나지 않고 서버가 시작된다. 이게 어떻게 동작하는거지? 바이트 코드를 조작하는 라이브러리를 사용해서 MyLogger를 상속받은 가짜 프록시 객체를 생성 그리고 스프링 컨테이너에 진짜 대신 가짜 프록시 객체를 등록 getBean("myLogger", MyLogger.class)로 조회해도 프록시 객체가 조회되는 것을 확인 => 의존 관계 주입도 가짜 프록시 객체가 주입됨 가짜 프록시 객체는 요청이 오면 그제서야 진짜 빈을 요청하는 위임 로직이 들어있음! 이런 가짜 프록시 객체는 원본 클래스를 상속 받아서 만들어졌기 때문에 진짜와 동일하게 사용할 수 있음! 꼭 기억하자 1..

웹 스코프는 웹 환경에서만 동작 프로토 타입과 다르게 스프링이 해당 스코프의 종료 시점까지 관리 -> 종료 메서드가 호출 웹 스코프 종류 1. request - HTTP 요청 하나가 들어오고 나갈 때 유지되는 스코프 - 각 요청마다 별도의 빈 인스턴스가 생성 관리 2. session - HTTP session과 동일한 생명 주기를 가지고 있음 3. application - 서블릿 컨텍스트와 동일한 생명주기 4. websocket - 웹 소켓과 동일한 생명주기 웹 라이브러리 추가 -> build.gradle // 웹 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-web' request 스코프 - 동시에 여러 HTTP 요청이 오면..

Fast-forward merge할 브랜치의 commit이 현재 branch의 commit 보다 앞설 경우, 현재 브랜치의 커밋을 merge할 브랜치 commit으로 이동하겠다는 의미 1. main에서 먼저 작성 후 commit git add . git commit -m "메세지" 2. test1 branch 생성 후 파일 수정한 다음 commit git checkout -b test1 git add . git commit -m "메세지" 3. main으로 이동 후 test1 merge git checkout main git merge test1 => main의 HEAD를 test1의 HEAD로 이동한다는 의미 => 실제로 main branch에서 log를 확인하면 test1에서 작성한 커밋 메세지가 표..

@Autowired 의존 객체 타입에 해당하는 스프링 빈 자동 주입 어노테이션 주입할 대상이 없을 경우 오류 발생 @Autowired(required = false) // 주입할 대상이 없을 경우 동작 생성자 주입 생성자를 통해서 의존 관계를 주입 받는 방법 불변이면서 필수인 상황에서 사용 생성자가 하나일 경우에는 @Autowired 생략 가능 객체를 생성할 때 딱 1번만 호출 되므로 이후 호출될 일이 없음, 불변하게 설계 가능 수정자 주입(setter 주입) 선택적이거나 변경 가능 상황에서 사용 setXxx 메서드를 public으로 열어두어야 함 => 누군가가 호출해서 실수로 변경할 수 있다는 단점이 있음 자바빈 프로퍼티 객체지향 언어인 자바에서 객체는 고유한 속성(특징)을 가지는데, 그 속성을 칭하는..

스프링 컨테이너 생성 ApplicationContext = 스프링 컨테이너 = 인터페이스 xml로 만들 수 있고 어노테이션 기반 자바 설정 클래스(ex.AppConfig)로 만들 수 있음 // 스프링 컨테이너 생성 ApplicationContext ac = new AnnotationConfigApplicationContext(ExConfig.class); 여기서 ExConfig.class가 스프링 컨테이너를 구성하는 구성 정보 파라미터로 넘어온 구성 클래스 정보를 사용해서 스프링 빈 등록 빈 이름은 직접 등록해서 사용할 수 있음(Default : 메서드이름) 빈 이름은 항상 다른 이름을 부여해야함 예시 AppConfig @Configuration public class AppConfig { @Bean p..