4차산업혁명의 일꾼/웹개발 350

오픈 API 호출과 ajax 호출

ajax는 아래와 같은 형태다 GET/POST의 타입과 호출 url 그리고 data 로 같이 보낼 것 성공시 callbak 실패시 callback 호출 형태다 $.ajax({ type: '', url: '' data : {} success: function(response){} }); 아래와 같이 날씨, 미세먼지 API 의경우 타입은 GET으로 URL은 오픈API 그리고 data는 비어있고 success 에 가져올 타입만 받으면 되는데 보통 json 타입으로 온다. 위의 API 는 웹사이트에서 아래와 같이 표시된다.

스프링JPA- Spring Data JPA(ORM) Hibernate ~! (페이징,정렬 기본)

JPA는 Java Persistence API로 자바 ORM기술에 대한 표준명세이다. JPA는 표준명세이고 , 이를 실제 구현한 프레임워크 중 사실상 표준이 하이버네이트(Hibernate)이다. 스프링부트에서는 기본적으로 하이버네이트를 사용중이다. JPA는 Entity 저장, 조회를 약속된 표준으로 처리해준다. Entity(디비테이블) 설정시 아래와 같은 어노테이션을 두어 Entity 관계설정도 가능하다. Spring Data JPA ID 외의 필드에 대한 추가 기능은 interface 만 선언해 주면, 구현은 Spring Data JPA 가 대신! Product Dto의 Page가 선언된 findAllByUserId 인터페이스가 완성되었다. Users Dto의 3가지 인터페이스가 있다. Folder D..

스프링 JWT

JWT는 로그인 정보를 서버에 저장하지 않고 클라이언트에 로그인 정보를 JWT로 암호화하여 저장하여 JWT통해 로그인 인증 및 권한을 인가하는 것이다. JWT의 장점은 동시 접속자가 많을 때 서버에 부하를 낮출수 있다.(OAuth와 같이 클라이언트와 서버가 다른 도메인을 사용할 때 JWT Token을 사용하면 서버의 부하가 낮아진다.) JWT의 단점은 복잡하고 JWT에 담는게 많아질수록 네트워크 비용 증가되며 기생성된 JWT를 일부만 만료시킬방법이 없고 Secret key 유출시 JWT조작이 가능하다. 이상 JWT로그인 설명을 간략하게 마친다. 보다 상세한것은 하기 URL참조 https://velog.io/@shinmj1207/Spring-Spring-Security-JWT-%EB%A1%9C%EA%B7%..

카카오 로그인 OAuth 기능 구현

카카오 로그인 구현 요청은 위와 같다. 자 인증코드 받은것으로 토큰이 전달되면 그것으로 API를 호출하는 것이다. 토큰이 유효한지 확인하여 유효하면 로그인이 되는 것이다. 카카오 디벨로버 사이트에서 해당 웹사이트를 등록할수 있다. Kakao Developers 내 애플리케이션 카카오계정 로그인 여기를 눌러 링크를 확인하세요. accounts.kakao.com 어플리케이션 등록한후 앱설정의 플랫폼에 가서 웹플랫폼을 등록한다. 그리고 나서 로그인후 인가토큰을 받게될 Redirect URI(callback) 을 설정한다. 인가코드 요청은 html에서 하기와 같이 할수 있다. ' 본인의 발급받은 REST_API_KEY와 지정한 REDIRECT_URI를 입력한다. 발급받은 REST_API_KEY는 하기 카카오계정..

스프링 시큐리티 - Spring Security

스프링 시큐리티 사용법을 살펴보자 일단 설정관련 어노테이션을 주고(@Configuration) 인터페이스 스프링 시큐리티 어노테이션을 쓰고 (@EnableWebSecurity) 인터페이스 시큐어가 전역의 메소드에 활성화되는 어노테이션을 준다. (@EnableGlobalMethodSecurity) 그리고 나서 하기와 같이 BCrypt 암호화 객체를 메소드로 등록도 하고 본격적으로 HttpSecurity의 설정을 해준다. csrf 설정을 disable 해준다. https://velog.io/@woohobi/Spring-security-csrf%EB%9E%80 Spring security - csrf란? 모든 코드는 github에 있습니다.최근에 Spring security를 한창 공부하고 있는데 (조만간 블..

의존성 주입[DI]과 역전제어[IOC]

스프링에서 우리가 의존성 주입으로 흔히 보는 것은 @Component , @Autowired , @Quailfier , @Resource 같은 것들이다. 스프링의 의존성 주입은 강한결합을 느슨하게 해준다. 의존적으로 주입되어 있어서 결합도가 느슨해 진것이다. 스프링 프레임워크로 인해 제어를 프로그래머보다 프레임워크로 하게 됨으로써 제어의 역전 현상이 일어난다. 이 IOC된 프레임워크에 주입된 객체 빈(Beans)들을 사용하는 것이다. 이것은 우리가 실생활에서 용도에 맞게 만들어진(IOC) 가위를 가져다 사용하는 것과 같다.(하기참조) 스프링 프레임워크란? The Spring Framework provides a comprehensive programming and configuration model fo..

리팩토링(refactoring)

프로그래밍 방식에는 객체지향과 절차지향이 있다. 프로그래밍 방식에는 인간의 직관적으로는 절차에서 객체로 리팩토링하는 것이 순차적인 편이다. [참고] 이해를 돕기위해 위의 절차지향 프로세스를 컨트롤러와 서비스 레지스토리 이 세개로 분리해서 보면 하기와 같다. 컨트롤러와 서비스 리포지토리로 나누는데=> 컨트롤러는 요청/응답 서비스에서 비즈니스 로직 리포지토리에서 DB연결 이렇게 주제별로 역할을 나누어서 한다 보통 각각 @Controller, @Service, @Repository 라는 어노테이션을 사용한다. 바로 이것이 그래서 객체지향 설계도의 기본으로서 스프링에서 CRUD하면 자주 보게 되는 것이다. 절차지향을 객체지향으로 리팩토링해서 쓰고 있는 @Controller, @Service, @Repositor..

Rest API 와 @ResponseBody

Rest API 는 하기와 같이 API 설계도~! RestAPI는 크게 자원(URL) 행위(Http Method) 그리고 표현(Json , xml,)으로 나눈다. 보통 Rest 라고 하면 Json을 많이 쓴다. 회원관리 API 를 보면 API 호출 방법을 보여준다~! 로그인 API~! 물론 GET / POST방식으로 주로 보내는데 PUT까지도 쓰인다. GET방식은 파라미터를 달고 가고 주로 조회용으로 쓰이고 POST방식은 BODY에 가져가면 수정,삭제 등 다양한 방식으로 사용가능하다 @ResponseBody 는 Http Body에 들어갈 내용을 하기와 같이 직접 입력하는데 @RestController = @Controller + @ResponseBody 등 이다.

스프링 AOP~!

AOP는 간단하게 객체의 부가기능 설계라고 보면된다.(OOP 주기능) 주기능 사이에 부가기능을 넣어줄수 있다. AOP는 부가기능으로 어드바이스로 @Around 로 핵심기능 수행전과후에 동작하게 할수 있다. 어드바이스의 종류는 하기와 같이 5가지가 있다. 포인트 컷의 expression language의 형태는 하기와 같다. 참고로 Setter, Getter , NoArgsConstructor, Entity 는 어노테이션으로 스프링부트에서 자동생성가능하다 할때 ApiUseTime 을 JPA로 DB와 연결하고 API 사용시간의 시작과 끝시간을 사용자마다 계속 등록하고 업데이트해주는 기능을 만들수 있다. 즉 사용자의 API사용시간~! 최다 사용시간을 사용하는 부가기능을 만드는데 있어서 @Aspect @Comp..

스프링 DI~ 의존성 주입이라 불리는 객체의 상황적 연결

스프링 DI는 의존성 주입으로 그냥 연결적인 면이다. 마치 건전지 바꿔서 주입할 수 있듯이 @ 어노테이션 주입가능하게 하고.. [@Component는 객체 주입] @Component class Engine{} @Component class TurboEngine extends Engine{} @Component class SuperEngine extends Engine{} @Value("red") String color; @Value("100") int oil; @Autowired Engine engine; @Autowired Door[] doors; @Autowire 객체로 연결, @Resource는 이름으로 연결 @Value는 변수 값지정 [root-context 설정시] 보통 하기와 같이 컴포넌트 객..

쇼미더코드 : 원티드 주관 코딩테스트 대회 후기

https://www.wanted.co.kr/events/showmethecode 쇼미더코드 (Show Me The Code) : 원티드 주관 코딩테스트 대회 ('22년 2회차) | 원티드 당신의 코드를 보여주세요. 금손or은손 뱃지도 받고, 취업까지! 쇼미더코드 코딩테스트 대회 결과에 따라 일정 점수 이상 획득한 지원자는 이력서 제출 시 원티드 인증 뱃지가 지원한 회사에 노 www.wanted.co.kr 쇼미더코드 : 원티드 주관 코딩테스트 대회 후기 코딩테스트 3시간 경품이 있습니다.!!!!!!! 키보드 + 마우스.... 문제는 다 풀어야 함 문제는 3개였다 첫번째는 게임관련 문제였다. 던전에서 마을(N+1)과 도로(N)개에서 체력과 공격력까지 고려하여 알고리즘 해결 두번째는 드랍 7*7 7*7의 상..

현대모비스 2022 SW 알고리즘 경진대회 개최 후기

https://www.hyundai.co.kr/news/CONT0000000000032344 현대모비스, 2022 SW 알고리즘 경진대회 개최 미래 모빌리티 분야 소프트웨어 개발 문화 확산… 학생부와 일반부 구분해 확대 개최 지난해 4천여 명 참가 큰 호응… 역대 최대 규모 상금 및 우수입상자 채용 우대 혜택 제공 다음달 24일까지 www.hyundai.co.kr 현대모비스에서 알고리즘 경진대회를 2022년 7월 1일 오후 1시 30분에 시작했다. 재미삼아 휴가 쓰고 경험해봤다. 코딩테스트 라는 것을 제대로 모르는 상태에서 본 후기니 전문가분들은 거르셔도 된다. 단도 직입적으로 내가 주목한 것은 5개의 질문이다. 키워드로 정리하면 레이싱, 주차, 공장, 자율주행, 도로망 뭐 사진 찍지도 말라했고 캡쳐도 ..

이클립스와 인텔리제이 단축키 비교

이클립스와 인텔리제이의 단축키를 간단 비교 단축키 이클립스 인텔리제이 비고 검색 Ctrl + H Shift +Shift(all) Ctrl+ Shift + A (Action) 인텔리제이 상세가능 경로찾기 Navigtor Tab Alt + Home 경로파악 (인테리제이 용이) 다른창이나 열려있는 탭이동 Ctrl + Tab 파일찾기 Ctrl +Shift + R Ctrl + E Ctrl + Shift +E 인텔리제이 상세가능 파일 내부 검색 Ctrl + F Ctrl +F (enter로 다음이동, shift+ enter로 이전으로 이동) Ctrl +R 인텔리제이 상세가능 파일 내부 이동 F3 Ctrl +B (메소드 위치이동) Ctrl+Alt +

컴퓨터 조립 ~! 다나와 가격비교~ 전문가용 PC조립!!!! 167만에 고성능~!

다나와 사이트에가서 PC견적을 하고 조립을 해봤다. 토탈 1,676,840 원 윈도우10 Pro 기존꺼 그대로 설치후 기존 PC는 중고로~! 케이스는 4900원 더내고 바꿨다. 아이구주 해치8 인피니티 강화유리 블랙~! 조립은 생각보다 신선했다. [1] 메인보드 조립 (MSI MAG B660M 박격포 와이파이) 일단 MSI MAG 박격포 이 제품은 ATX 제품이다. 이렇다고 하니 고를시 참고하면 된다. 확장성이 좋다는게 그래픽카드도 2개 꽂을수 있고... 메모리카드는 4개나 꽂을수 있었다. HDD와 CD까지 활용 가능한 공간이 있었다.( 이전 쓰던 컴퓨터에서 연결) 다만 문제는 DP 포트 Display Port 가 3개에 HDMI포트가 하나라... Display Port 케이블이 있어야한다. DP포트는 ..

오라클 잡 스케줄러 확인 및 간단 확~!

오라클 잡 스케줄러를 간단 살펴봅니다. 1. 오라클 잡 스케줄러 확인 및 구조 SELECT * FROM USER_JOBS ; 잡 스케줄러 확인을 합니다. 컬럼을 살펴보면 JOB 컬럼은 번호 NEXT_DATE 는 다음 가동시간 INTERVAL 은 다음 작동간격 BROKEN은 가동여부 FAILTURES 실패여부 WHAT 잡 내용 INSTANCE ~! 2. 잡 활성/비활성 (FALSE 활성화, TRUE 비활성화) BEGIN DBMS_JOB.BROKEN(35,FALSE); COMMIT: END; 웨에서 BROKEN(잡번호, 불린값)으로 잡활성과 비활성을 시킬수 잇다. 3. INTERVAL 간격 잡/스케줄링 간격 룰을 보자 (1) 매일 실행하는것 SYSDATE+1 (2)매일 새벽 4시 TRUNC(SYSDATE)+..

크롬에서 포스트맨 간단 사용법 - GET / POST

크롬 확장프로그램에서 Postman 검색하면 Tabbed Postman - REST Client 이 있고 설치하면 URL 옆에 확장프로그램이 보인다 저걸 클릭하면 URL을 치고 POST로 http://www.naver.com 을 그냥 해본다. 상태값 200 으로 잘 왔다~! GET 으로 그냥 보내도 잘 갔다온다~! 이번에는 크롭 웹브라우저의 확장프로그램 포스트맨을 살펴보았고~! 다음에는 포스트맨 사용범 심화를 다뤄보자~!

Dbvisualizer Pro ~! 다중 DB지원 유료툴 추천

https://www.dbvis.com/ DbVisualizer - The Universal Database Tool Get the best database experience. DbVisualizer is The Ultimate Universal Database Tool for developers, analysts and DBAs. Download for free now. www.dbvis.com 무료 버전이 있고 , 베이직, 프리미엄 버전이 있다.(2022-05-24)기준 맨상단에 세가지가 있다. 이것이 편리한 것은 다양한 버전의 DB를 한곳에서 모아 볼수 있다. Options에서 기본적으로 Auto Commit 설정을 할수 있다. Database에서도 DB driver로 을 Oracle, MSSQL..

생초보개발자딱지떼기 8 - 서버 컴퓨터 접근 툴(파일질라와 putty)

https://iamipro.tistory.com/118?category=1031104 생초보 개발자 딱지 떼기 7 - 스프링 ,서블릿, 이클립 web.xml 고도화 탐구 https://iamipro.tistory.com/117 생초보 개발자 딱지 떼기 6 - 빌드도구 , 스프링 (pom.xml 구조), 스프링부트 https://iamipro.tistory.com/116?category=1031104 생초보 개발자 딱지떼기 5 - Tomcat WAS 구동.. iamipro.tistory.com 자바 스프링은 보통 웹어플리케이션을 만드는데 사용되는데 간략하게 보았고 좀더 외연적으로 많이 쓰이는 서버 접근 툴에는 파일질라와 putty가 있다. [파일질라 다운로드] https://filezilla.softon..