. '프로그래밍 공부' 카테고리의 글 목록
본문 바로가기

프로그래밍 공부65

orElse 와 orElseGet에 관한 좋은 글 https://zgundam.tistory.com/174 Optional 클래스의 orElse와 orElseGet에 대한 정리 이번 글에서는 Java 8 에서부터 지원하기 시작한 Optional 클래스의 orElse와 orElseGet 메소드에 대해서 정리를 해보려한다. 이 글에서는 Optional 클래스가 무엇인지에 대해서는 언급하지는 않고 다만 orE zgundam.tistory.com 나중에 또 찾아볼 수 있도록 2021. 7. 28.
자바 직렬화(Serializable) 에 대해서.. 직렬화란? 자바 시스템 메모리에 상주해있는 객체나 데이터를 바이트의 형태로 변환하는 것. 반대로 바이트의 형태를 객체나 데이터로 변하는 것은 역직렬화라한다. (비슷하게, 테이블 형태의 데이터를 직렬화하는 것은 CSV, 통신에 사용하기 위해 사용하는 것은 JSON이 있다. 자바에서의 직렬화는 자바 시스템 간의 데이터 교환을 위한 것이다.) 언제 쓰이는가? 자바 시스템이 종료되어도 해당 객체 / 데이터가 남아있어야할 때나 네트워크로 전송해야할 때 직렬화하여 영속화(Persistence)한다. 특히 Class를 그대로 DB에 넣고, 같은 혹은 다른 자바 시스템에서 이 Class를 사용하고싶다면 직렬화하여 바이트의 형태로 DB에 저장한 뒤, 사용할 때는 DB에 있는 바이트의 데이터를 역직렬화하여 사용한다. 왜 .. 2021. 6. 20.
[정리예정] OpenId란 https://www.samsungsds.com/kr/insights/oidc.html 편의성을 높인 ID 인증 관리 - OIDC(OpenID Connect)가 주목 받는 이유 편의성을 높인 ID 인증 관리 - OIDC(OpenID Connect)가 주목 받는 이유 www.samsungsds.com https://openid.net/connect/ OpenID Connect | OpenID OpenID Connect page openid.net https://www.buildinsider.net/enterprise/openid/connect OpenID Connectユースケース、OAuth 2.0の違い・共通点まとめ OAuth 2.0&OpenID Connectユースケースと関連仕様まとめ。OpenID Conne.. 2021. 6. 14.
[LINE API] 라인 로그인 v2.1 https://developers.line.biz/ja/reference/line-login/ https://developers.line.biz/ developers.line.biz 라인 플랫폼이 제공하는 것 유저ID, 유저명, 프로필 사진, 상태 메시지 등을 제공함. 엑세스 토큰을 발급받기 HTTP Request POST https://api.line.me/oauth2/v2.1/token Request Header Content-Type :: application/x-www-form-urlencoded Request Body - grant_type : [String] authotization code - code : [String] 라인플랫폼으로 받은 허가코드 - redirect_uri : [Strin.. 2021. 6. 14.
React-admin이란 1. React-Admin이란? React 기반의 관리자 페이지 제공 서비스이다. 유료 버전은 물론 무료 버전이 많기 때문에 원하는 템플릿을 받아서 입맛에 맞게 개조하면 될 것 같다. 참고) https://usecode.pw/free-react-dashboard/ 무료 리액트 어드민 대시보드 템플릿(Free React Admin Dashboard Template) 보통 서비스를 운영하게 되면 서비스 관리를 위해 별도로 관리자 페이지를 만들어 사용하게 된다. usecode.pw 2021. 6. 11.
[잡설] 구현체에 대해... 1. 이슈 asList로 생성한 List 에 다른 List를 add해주려다가 에러를 만났다. (참고 : https://blog.woniper.net/350) 결론부터는 immutable List에 조작하려다가 에러가 난 것이다. 2. 왜 이슈가 났는가 List에 여러가지 구현체가 있다는 것을 몰랐고, immutable/mutable에 대한 이해가 부족했다. 막연하게 List니깐 조작이 가능할 것이다 라는 생각에 해버린 것이다. 3. 해결방안 1) mutable/immutable 의 구현체들에 대해 정확히 파악하고 쓸 것. 2) Collections 에 대한 이해 (살짝 새는 얘기일 수도 있지만, List로 인자 받을 것을 Collections로 받으면 더욱 추상적이어 유연한 메소드가 된다.) 3) imm.. 2021. 6. 10.
SMTP의 보안 시스템 :: SPF, DKIM, DMARC 란? 회사에서 SPF, DKIM, DMARC 에 대한 이야기가 나왔다. 나는 개찐따였기때문에 하나도 모르고 그냥 그런갑다하고 이야기만 들었다. 그래도 모르고 지나갈 수는 없기에 한번 정리해보고자 한다. https://docs.sophos.com/central/Customer/help/ko-kr/central/Customer/concepts/EmailSenderChecks.html 보낸 사람 확인의 작동 원리 보낸 사람 확인은 이메일 출처의 인증을 확인하는 데 사용됩니다. 이 항목은 Sophos Email이 불법 이메일로부터 사용자를 보호하는 데 사용하는 보낸 사람 확인 유형을 지정합니다. 주 이 항목은 보 docs.sophos.com 예를 들어, 구글 서비스의 비밀번호를 변경하기 위해서 IP : 111.111.. 2021. 6. 7.
[Lamda] :: .map( -> method(x)) 를 하는 경우에 x를 두번 입력해야하는 번거로움이 있다. 이를 .map([인스턴스명] :: [메소드]) 로 간단하게 표기할 수 있다. 자바(Java) 8: 람다식에서 콜론 두개 (:: - 이중 콜론 연산자, 메소드 참조 표현식)의 용도와 사용법 - BGSMM (yoonbumtae.com) 2021. 6. 3.
[Java.util]Optional Optional 은 객체를 포장해주는 Wrapper Class이다. 어떤 Class안에 null이 들어올 경우가 있다면 사용한다. 본 class를 그대로 꺼내고 싶다면 get()을 사용한다. orElse([arg]) : Optional의 값이 있으면 그 값을 반환하고 아니면 arg를 반환한다. orElseThrow([arg]) : Optional의 값이 있으면 그 값을 반환하고 아니면 arg(예외처리)를 발생시킨다. 참고) http://tcpschool.com/java/java_stream_optional 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com 2021. 5. 26.
[Postman] variables 및 request 등록 Collections에서 프로젝트를 추가한다. 프로젝트를 클릭하면 Auth, Pre-req, Tests, Variables가 있는데, 여기서 유용한 것은 variables이다. 여기서 주로 사용하는 variable을 추가할 수 있다. 그리고 프로젝트에서 request를 추가해보자. 프로젝트 옆의 ・・・ 을 클릭하면 new request가 나온다. 클릭하자. 우선 메소드를 정의할 수 있다. GET, POST 등을 선택하고 해당 URL을 입력한다. variables를 여기서 사용할 수 있다. {{[variable]}} 을 사용하여 등록한 variable을 사용할 수 있다. 예 ) endpoint = https://firecatlibrary.tistory.com , firstvalue = 1 로 등록한 경우에.. 2021. 5. 26.
@Transactional 불냥이의 요약 : DB의 어떤 부분을 작업할 때, 나(@Transactional을 선언한 클래스나 매소드)만 작업하고 다른 친구들이 도중에 간섭하지 못하도록 해준다. 그리고 끝나면 로그를 자동으로 남겨주며, 만약 중간에 작업이 잘못된 경우 작업 시작 전 DB로 돌아가게 해준다. Transaction :: 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위이다. @Transactional 은 begin이랑 commit을 자동으로 수행한다. commit : 하나의 transaction 작업이 성공적으로 끝났고, 로그를 남긴다. rollback : transaction 작업이 비정상적으로 종료되었을 때 작업 시작 전으로 돌아간다. 예외를 발생시키면 rollback 처리를 자동 수행한다. 등등의 기능이 .. 2021. 5. 25.
[PostgreSQL] ALTER TABLE https://www.postgresql.org/docs/9.1/sql-altertable.html ALTER TABLE ALTER TABLE Name ALTER TABLE -- change the definition of a table Synopsis ALTER TABLE [ ONLY ] name [ * ] action [, ... ] ALTER TABLE [ ONLY ] name [ * ] RENAME [ COLUMN ] column TO new_column ALTER TABLE name RENAME TO new_name ALTER TABLE name SET SCHE www.postgresql.org https://postgresql.kr/docs/11/sql-altertable.html ALTER .. 2021. 5. 24.
[PostgreSQL] CTE https://www.postgresqltutorial.com/postgresql-cte/ PostgreSQL CTE Summary: in this tutorial, you will learn how to use the PostgreSQL CTE (common table expressions) to simplify complex queries. Introduction to PostgreSQL common table expressions or CTEs A common table expression is a temporary result set which you can re www.postgresqltutorial.com CTE :: Common Table Expression;공통 테이블 식 SELECT, .. 2021. 5. 24.
[Guice] @Assisted https://google.github.io/guice/api-docs/4.2/javadoc/index.html?com/google/inject/assistedinject/package-summary.html Guice 4.2 API google.github.io 개략 Annotates an injected parameter or field whose value comes from an argument to a factory method. factory method에 inject할 parameter가 argument에서 온 경우 사용하는 annotation 언제 사용하는가? @Inject로 DI해줄 parameter 중에서 런타임중에 value가 변할 수 있는 parameter앞에 @Assisted를 붙.. 2021. 5. 21.