목록전체 글 (85)
개발새발
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bLWnfv/btrPDDhvkwd/kg2RCWxckMe4q4H9k6ud1K/img.png)
OAuth 란 - 사용자가 비빌번호를 노출하지 않고 다른 웹 사이트의 자신의 정보를 웹이나 애플리케이션에 접근 권한을 부여할 수 있는 개방형 표준. - 로그인 뿐만 아니라 데이터 접근 권한도 포함하고 있기 때문에, Authentication(인증)뿐만 아니라 Authorization(인가)도 포함하고 있다. - Resource owner User(보호된 자원에 대한 엑세스 권한을 부여할 수 있는 사용자) - Client OAuth를 이용하기 위해 Resource 서버에 등록한 애플리케이션이나 웹 서비스. - Resource server 허용할 수 있는 보호된 리소스를 호스팅하는 서버, 엑세스 토큰을 사용하여 보호된 리소스 요청에 응답합니다. - Authorization server 성공적으로 인증을 마친..
- Spring은 만들어질 때(1.0)부터 에러 처리를 위한 BasicErrorController를 구현해두었고, 스프링 부트는 예외가 발생하면 기본적으로 /error로 에러 요청을 다시 전달하도록 WAS 설정을 해두었다. 그래서 별도의 설정이 없다면 예외 발생 시에 BasicErrorController로 에러 처리 요청이 전달된다. 참고로 이는 스프링 부트의 WebMvcAutoConfiguration를 통해 자동 설정이 되는 WAS의 설정이다. 일반적인 흐름 WAS(톰캣) -> 필터 -> 디스패처 서블릿 -> 인터셉터 -> 컨트롤러 컨트롤러 하위에서 예외가 발생하였을 때, 별도의 예외 처리를 하지 않으면 WAS까지 에러가 전달된다. 그러면 WAS는 애플리케이션에서 처리를 못하는 예외라 판단하고 다음 순..
CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르러 애플리케이션 라이프 사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공합니다. CI (Continuous Integration) - 지속적 통합 - 빌드/테스트 자동화 과정 - 개발자를 위한 자동화 프로세스 - 여러 명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통합하면서 관리할 수 있음 - 개발자가 빌드와 테스트를 직접 하지 않고도 수정한 코드를 브랜치에 병합하기만 하면 자동으로 빌드와 테스트를 검증할 수 있음 - 커밋할 때마다 빌드와 일련의 자동 테스트가 이루어져 동작을 확인하고 변경으로 인해 문제가 생기는 부분이 ..
OOP(Object Oriented Programming)이란 여러 개의 문제를 객체 단위로 나누어 객체들이 서로 유기적으로 상호작용하는 프로그래밍 이론이다. 대표적으로 Java, C++ C#등이 있다 프로그래밍에서 객체란? - 데이터의 분산을 막기 위해 데이터와 기능을 하나로 묶은 그룹을 말한다. - 자바의 경우 그 구성 부분 단위가 클래스 장점 코드의 재사용성 증가 - 상속을 통해 프로그래밍 코드의 재사용성을 높일 수 있다. 생산성 향상 - 잘 설계된 클래스를 만들어 독립적인 객체르 사용함으로써 개발의 생산성을 향상시킬 수 있다. 자연적인 모델링 - 우리 일상생활의 모습의 구조가 객체에 자연스럽게 녹아들어 있기 때문에 생각하고 있는 것을 그대로 자연스럽게 구현 할 수 있다. 유지보수 - 프로그램 수정..
우리가 개발하는 어플리케이션들을 크게 2개로 나눠보면 요청자와 제공자라고 할 수 있다 요청자를 consumer 또는 subscriber // 제공자를 producer 또는 provider 요청자가 제공자에게 무언가를 요청할 때 제공자가 공개한 API를 이용하게 된다 요청 시 프로그램에서 우리가 가장 흔하게 사용하는 것이 Http Client이다 Spring WebClient는 웹으로 API를 호출하기 위해 사용되는 Http Client 모듈 중 하나이다 Java에서 가장 많이 사용하는 Http Client는 RestTemplate이다 공통점은 둘다 HttpClient모듈이다, 차이점은 통신방법이 RestTemplate은 Blocking방식이고, WebClient는 Non-Blocking방식이다 Non-b..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kR8Pq/btrMyfXa7Pe/JxB40Bo5j4RAzEKVIeVB0K/img.png)
프로젝트 코드를 짜다가 org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement이런 오류를 만났다 진짜 몇시간을 찾아봤지만 고치지 못했다 하지만!!!!! 고쳤다 진짜 너무 멍청한 짓을 했던것이다 기존 코드 고친 코드 새로 작성된 comment가 insert되게 해야하는데 아무런 관련도 없고 빈 comment를 db에 넣으려고 하니까 생긴 에러였다 이런 오류는 주로 null 값을..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c5Ak12/btrL9bIeHbQ/dnNRn6Ri0AnfHIU2VWmhF0/img.png)
application.yml 파일과 application-oauth.yml 파일을 나눠서 사용했을때 한쪽만 spring을 붙이고 들여쓰기를 잘 해야된다
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cMd2L3/btrLZzwqHJh/clBtEtW8bm1d04b8fKkZ6K/img.png)
swagger를 적용하다가 만난 에러 yml 파일에 이렇게 추가해 줬다
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bpsEgA/btrLWmqDBw8/36KMURf8aZo8dH6CWYGNpk/img.png)
Swagger REST 웹 서비스를 제공하려면 프론트엔드 개발자에게 전달해줄 API문서가 필수 그런 문서를 작업해서 전달해주는건 수고로운 일 그래서 나타난게 Swagger이며, 이것은 문서뿐 아니라 빌드, 테스트 케이스, 등도 작성 가능 스웨거(Swagger)는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다. 대부분의 사용자들은 스웨거 UI 도구를 통해 스웨거를 식별하며 스웨거 툴셋에는 자동화된 문서화, 코드 생성, 테스트 케이스 생성 지원이 포함된다. / 위키 백과 구현 build.gradle 설정 실질적으로 필요한 코드 implementation group: 'io.springfox', name: 'sp..
영업 활동은 고객의 니즈를 파악하고 적합한 판매 전략을 통해 거래를 마무리하는 전반의 과정을 포함 영업은 대부분의 산업에서 요구되는 기본적인 비즈니스 활동으로 영업 대상에 따라 크게 기업(Business)을 대상으로 하는 B2B영업과 소비자(Consumer)를 대상으로 한 B2C 영업으로 구분B2B 영업 - 기업 대 기업(Business to Business)의 약자로 기업 간의 거래를 위한 영업 방식 - 기업을 대상으로 기술 기반의 고도화된 제품·서비스 또는 원자재 등을 판매, 영업 활동으로 해당 제품·서비스를 지속적으로 공급하기 위한 고객 기업을 타깃 - 자동차 부품의 정기적인 공급, 기업용 소프트 웨어 서비스 제공 등 고객 기업이 완성 제품·서비스를 생산하는 데 기반이 되는 제품·서비스 제공하기 위..