dart 객체지향구글User Interface 만드는 데에 최적화모든 플랫폼에서 빠르다많은 플랫폼에 컴파일가능0. INTRODUCTION0-1. Why Dart두 개의 컴파일러 (DART WEB/NATIVE)WEB: dart 코드 > javascript 변환 컴파일러NATIVE: dart 코드 > 여러 cpu 아키텍쳐에 맞게 변환 컴파일러 (ARM32, ARM64, 데스크탑 등)사물인터넷에도 사용 가능어떻게 컴파일 되는가 JIT / AOT(: c, c+, rust, go)c++ 프로그램 만들었다 > win에 배포하고싶다 > win 바이너리로 컴파일해서 바이너리 제공해야 함UI 만들다가 버튼 변경 > 다시 컴파일? 화면에서 바뀐 걸 바로 봐야하는데 전체 프로젝트가 컴파일 되면 좋은 개발 경험X, JIT 컴파일이 필.. mongo 1. db 목록을 조회했다. | show dbs총 여섯 개의 db가 존재함 2. 새로운 db를 사용한다. | use [db명]목록에 없는 db이지만 생성되면서 swtich 됨 3. 다시 목록을 조회했다. | show dbs생성되었는데 목록에 조회는 되지 않음 4. collection을 만들었다. | createCollection("[collection명]")생성 완료 5. 다시 목록을 조회했다. | show dbscollection을 만들자 db가 완전 생성되어 목록에서 조회됨 클라우드 용어 (클라우드/IaaS/PaaS/SaaS/BaaS) 클라우드 컴퓨팅 컴퓨팅, 스토리지, 애플리케이션, 데이터베이스, 분석 및 기타 IT 리소스를 클라우드를 통해 어디서나 편리하게 사용할 수 있도록 종량제 과금 모델에 따른 온디맨드 방식으로 제공하는 것 클라우드 서비스 공급자 클라우드 컴퓨팅 서비스를 다른 개인 또는 조직에 PaaS, IaaS, SaaS 형태로 유료 제공하는 기업 또는 조직 퍼블릭 클라우드 누구나 유료로 사용할 수 있게 클라우드 서비스 공급자가 공용 인터넷을 통해 제공하는 컴퓨팅 서비스. 무료이거나 스토리지 사용량, 대역폭 또는 사용된 CPU 사이클을 기준으로 요금이 부과될 수도 있음 프라이빗 클라우드 조직 또는 기업에 속한 여러 사용자가 사용하도록 프로비저닝된 클라우드 인프라. 일반 대중이 사용할 수 없고, 조직에서 운영 및 사용 하이브리.. AOP/관점 지향 프로그래밍/Aspect Oriented Programming 반복된 로직(공통 관심사)을 한 곳으로 몰아서 코딩할 수 있도록 해준다. ==> AOP란, 핵심 Business 로직에서 공통 관심사를 분리하는 것! 핵심 관심사와 공통 관심사 핵심 관심사 핵심 로직에 대한 관심사, 핵심 기능 공통 관심사 애플리케이션 전반에 걸쳐 공통적으로 사용되는 기능들에 대한 관심사 ex) Method Parameter, 실행시간 등 로깅, 보안, Parameter Encode 등... AOP를 활용하지 않으면 실질적 로직에 공통 기능을 반복 코딩 해야 한다. 공통 기능에 수정이 필요해진다면, 모두 수정해야 한다. 대표적으로, Spring에서 제공하는 @Transactional AOP의 필요성 1. 간결한 코드 유지 2. 객체 지향적인 코드 구현 3. 코드 재사용 항상 깔끔하고, 중.. JSP 내장 객체 영역(Scope)/page/request/session/application - 내장 객체의 영역(Scope)각 객체가 저장되는 메모리의 유효기간JSP는 페이지 단위로 구성된다 -> A 페이지에서 선언한 변수를 B 페이지로 이동해서도 계속 접근하기 위해서는, 영역을 통해 내장 객체에 저장된 속성값을 공유할 수 있도록 한다.- 내장 객체의 네 가지 영역page 영역: 동일한 페이지에서만 공유, 페이지 벗어나면 소멸request 영역: 하나의 요청에 의해 호출된 페이지, 포워드(요청 전달)된 페이지까지 공유session 영역: 클라이언트가 처음 접속한 후 웹 브라우저를 닫을 때까지 공유application 영역: 한 번 저장되면 웹 애플리케이션이 종료될 때까지 유지범위의 크기는 application > session > request > page더 큰 범위를 가진 영역은 작은 범위의.. JSP 내장 객체/request/response/out/application/exception - 내장 객체(Implicit Object)란 JSP 페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체이다. JSP 페이지가 실행될 때 컨테이너가 자동으로 내장 객체의 참조변수를 생성하기 때문에, 별도의 선언/초기화 없이 즉시 사용할 수 있다. 내장 객체 참조변수 생성은 JSP -> Servlet으로의 변환 과정에서 생기는 _jspService() 메서드에서 이루어진다. 내장 객체는 JSP 내의 , 에서만 사용할 수 있으며, 에서는 매개변수로 전달받아야만 사용 가능하다. - 내장 객체의 종류 | (타입) 객체명 (HttpServletRequest) request: 클라이언트의 요청 정보 저장 (HttpServletResponse) response: 클라이언트 요청에 대한 응답 정보 저장 (.. JSP(Buffer/autoFlush 속성) 0. JSP 파일 실행 과정 1. 서블릿 코드로 변환된 후 2. 컴파일 되어 class 파일로 만들어진다. 3. 이를 실행한 결과물을 HTML 형태로 웹 브라우저에 보내 최종적으로 화면에 출력한다. JSP가 생성한 결과는 웹 브라우저로 즉시 전송되는 것이 아니라, 우선 버퍼에 저장되었다가 일정량이 되었을 때 전송한다. 만약 실행 중 에러가 발생하면 버퍼에 저장된 내용을 삭제하고 에러화면을 표시한다. JSP에서는 버퍼를 사용함으로써 페이지 전달(포워드) 에러 페이지 처리 를 할 수 있다. 더보기 * 버퍼 (Buffer) 버퍼라는 개념은 매우 다양하게 사용된다. 가장 쉽게 접할 수 있는 곳은 스트리밍 서비스이다. 네트워크로 데이터를 전송할 때, 작은 단위로 여러번 전송하는 것보다 큰 단위로 한 번에 보내는 .. EC2(Ubuntu) 시간대 설정 [ubuntu@ ~]:~$ sudo date Tue Mar 21 05:41:07 UTC 2023 [ubuntu@ ~]:~$ sudo cat /etc/localtime TZif2UTCTZif2UTC UTC0 [ubuntu@ ~]:~$ sudo rm /etc/localtime [ubuntu@ ~]:~$ sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime [ubuntu@ ~]:~$ date Tue Mar 21 14:41:43 KST 2023 죽음의 CORS ERROR 정말 요상한 에러를 겪었다. GET(글 목록/회원 정보 조회), POST(회원가입/로그인), DELETE(회원탈퇴) 세 가지 HTTP Method를 테스트 해보았다. 당시 환경은 프론트 팀원 로컬 - ngrok으로 포워딩된 내 로컬 그런데 모든 API에서 CORS가 나지 않고,, GET에서만 CORS 에러가 났다. 회원가입, 로그인, 회원 탈퇴 전부 되는데도!! 회원정보를 불러오지를 못 했다. Preflight를 보내지도 않았다. 내 짧은 지식으로는 이해가..힘들었다🥹 문제를 인식하게 된 과정은 이렇다. 1. 로그인은 되는데 글 목록 조회에서 에러가 발생해서 -> 2. 설마 로그인은 처음에 Authentication Filter를 타서 되는 건가 싶어서 -> 3. 회원가입도 회원탈퇴도 시도해봤는데 -> .. Spring Security - JWT 인증 적용기 (2) AuthenticationHandler 1. Handler 구현 MemberAuthenticationHandler 클래스에서 Success, Failure 핸들러를 각각 정적 멤버로 가지도록 했다. public class MemberAuthenticationHandler { @Slf4j public static class Success implements AuthenticationSuccessHandler { @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException { ... // 인증 성공 시, 로깅 또는 response로 사.. JWT 토큰 인증 JWT(Jason Web Token) Payload의 DATA가 작성자가 작성한대로, 위조되지 않았음을 보장하기 위해 뒤에 서명(Signature)값을 붙인다. 인증된 사용자라면 계속해서 그 서비스를 이용할 수 있도록 보통 sessionId, 쿠키를 통해 서비스를 하는데 여러 서버 또는 애플리케이션을 통해 서비스를 받도록 구성(MSA 등)했을 때 SSO 다른 서버에서 연속성 있게 사용할 수 있다 사용자에 대해 session을 이용하면 서로 공유하는 것도 쉽지 않다 Redis라거나 다른 메모리 그리드 방식을 사용해도 --> web토큰을 사용 Payload에 claim이라고 하는 key-value 데이터를 client가 가지고 있다가 요청할 때마다 토큰 전달 토큰에는? 인증에 필요한 최소한의 데이터를 넣어야.. Spring Security - JWT 인증 적용기 (1) 로그인 시 사용자 인증, JWT 발급 이 포스팅은 정리된 정보 제공용이라기보단 직접 만들었던 프로젝트에 JWT 인증을 적용하면서 이해한 그대로를 남겨보고 싶어 작성했다. 날것 그대로를...................... 처음엔 흐름이 잘 이해가 안 됐는데, 구현체를 열심히 까보면서 상속 관계를 이해하려 하니 흐름은 대략적으로 잡을 수 있었다. 하지만 아직 애매한 부분은 Provider 기본 구현체를 좀 찾아보고 싶은데 아직 못 찾은 것,, 1. 로그인 인증 흐름 내 맘대로 간단 정리 1. 클라이언트 ~> 서버 로그인 인증 요청 2. 로그인 인증 정보 수신 (구현체: JwtAuthenticationFilter: 로그인 인증 담당 Security Filter, extends UsernamePasswordAuthenticationFilter).. 이전 1 2 3 4 ··· 9 다음