일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 깡돼후
- preemption #
- Spring Batch
- k8s #kubernetes #쿠버네티스
- terminal
- pytest
- JanusWebRTC
- mp4fpsmod
- PytestPluginManager
- python
- 티스토리챌린지
- 코루틴 빌더
- 자원부족
- 코루틴 컨텍스트
- 개성국밥
- vfr video
- JanusGateway
- PersistenceContext
- Value too long for column
- 달인막창
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- JanusWebRTCGateway
- JanusWebRTCServer
- 오블완
- kotlin
- taint
- 겨울 부산
- tolerated
- VARCHAR (1)
- table not found
목록개발 (101)
너와 나의 스토리
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dR3GYy/btqG9AZ0qwA/O21a1KLmymrz2a2kRKCZ50/img.png)
Spring DI 객체들 간의 의존성을 줄이기 위해 사용되는 Spring의 IoC 컨테이너의 구체적인 구현 방식 객체 자체가 아니라 프레임워크에 의해 객체의 의존성이 주입되는 설계 패턴 객체간의 의존성을 자신이 아닌 외부에서 주입하는 개념 객체를 주입 받는다는 것은 외부에서 생성된 객체를 넘겨받는 것이다. 이렇게 하면 결합도를 낮출 수 있고, 런타임시에 의존관계가 결정 되기 때문에 유연한 구조를 가진다. 왜? 모듈 간의 결합도를 낮춰서 유연한 변경을 가능하도록 하기 위해서 * 런타임 & 컴파일 타임 - 컴파일 타임: 작성된 소스코드를 기계어코드로 변환 되어 실행 가능한 프로그램으로 만듦 - 런타임: 컴파일 과정을 마친 프로그램은 사용자에 의해 실행되어 지며, 이러한 응용프로그램이 동작되어지는 때를 런타임..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bOftEg/btqG68iyzQJ/NlzB9FeSHrSzA726rzjkN0/img.png)
REST API REST(Representational State Transfer)의 약자로 특정 요청에 따른 표현 상태 전이를 표현한다는 의미일까. 위키백과의 설명을 빌리자면 네트워크 아키텍처 원리의 모음으로, 네트워크 아키텍처 원리란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다. 간단한 의미로는, 웹 상의 자료를 HTTP 위에서 SOAP이나 쿠키를 통한 세션 트래킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다. -> 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미 브라우저와 같은 웹클라이언트는 URL link와 같은 resource identifer를 통해 resource에 대해 어떤 요청을 하고 그 결과..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bKgTr5/btqG4btBVet/OKet0K1ERcVUmIJKSdI24k/img.png)
Spring security : 스프링 기반의 어플리케이션의 보안(인증과 권한)을 담당하는 프레임워크이다. 만약 스프링 시큐리티를 사용하지 않았다면? 자체적으로 세션을 체크하고 redirect 등을 해야할 것이다. Spring security는 filter 기반으로 동작하기 때문에 spring MVC와 분리되어 관리 및 동작한다. 보안 관련 용어 접근 주체(Principal): 보호된 대상에 접근하는 유저 인증(Authenticate): 현재 유저가 누구인지 확인 (ex. 로그인) 애플리케이션의 작업을 수행할 수 있는 주체임을 증명 AuthenticationManager, AuthenticationProvider 인가(Authorize): 현재 유저가 해당 리소스[어떤 서비스, 페이지]에 접근할 수 있는..
dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'junit:junit:4.12..
이상적인 RUL: 짧고, 기술적이고, 효율적 URL design: the technical basics 1. 단어를 hyphen으로 구분하기 eg. example.com/tennisequipment-> example.com/tennis-equipment * underscores( _ ) 사용하지 않기! 2. URLs 안에 데이터 사용하는 것 고려하기 eg. http://www.news.com/2015/08/17/news-article -> 해당 게시물에 날짜 스탬프를 업데이트하면, url도 변경되고, 이전 url이 새로운 url로 리다이렉션 되는지 확인해야 함. 3. 소문자로 작성하기 4. 절대 CRUD 함수 이름을 URL에 사용하면 안 된다. GET "/devices/{id}" DELETE "/devi..
[ ~~.csrf().disable() ]를 추가하자! CSRF 때문에 forbidden이 뜬 것!! CSRF란? 자기도 모르게 특정 웹사이트 요청하는 공격하게 되는 것을 말한다. 이를 방지하기 위해 default로 post가 막혀있는 것 같다. /*import*/ @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private CustomAuthenticationProvider customAuthenticationProvider; @Bean public PasswordEncoder passwordEncoder() { // bcrypt 해쉬 알고리즘 이용 ..
import org.h2.server.web.WebServlet; → import 안되는 경우 build.gradle 에서 runtimeOnly 'com.h2database:h2' 를 compile 'com.h2database:h2' 로 바꾸면 된다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bypSNB/btqD8hpVYin/BXVURMgEyC9d9jfUV3yCN1/img.png)
Action: "Identify and stop the process that's listening on port 8081 or configure this application to listen on another port." 이라고 뜨니, 한 번 8081 port를 리스닝하는 프로세스를 죽여보자! 1. 해당 포트 번호를 사용 중인 프로세스 찾기 $ netstat -tnlp | grep "port 번호" Mac OS에서 위 명령어를 입력하면 "netstat: option requires an argument -- p"라는 에러가 발생할 것이다. 즉, Mac에서는 명령어가 좀 다르다. $ netstat -p tcp -van | grep LISTEN | grep "port 번호" 2. 해당 프로세스 죽이기 ..