https://devkimchi.tistory.com/62
위의 글에서 프로젝트 초기 설정에 이어 intellj에서 Spring initializr 이용하여 프로젝트를 생성해 보고
테스트해 보겠다.
IDE에서 제공하는 스프링 종속성 라이브러리들을 추가해 주고 있다.
첨 보는 라이브러리도 있다.
Security에 보면 Okta라는 것이 있어서 뭔가 하고 유심히 찾아보니
saml, mfa 한글로 된 문서는 적은데 유용해 보였다.
Security Assertion Markup Language
saml은 보안인증을 수행할 수 있는 표준 방법 중에 하나인데. 하나의 아이디를 통해 이미 가입되어 있는 사이트를 이용할 수 있게 해주는 기술이다.
Multi-Factor Authenticaton
OTP, Email 등 다양한 인증 요소를 사용하여 추가 인증을 할 수 있게 해주는 것을 말한다.
Single Sign-On
한번 로그인하여 여러 가지 다른 사이트들을 사용할 수 있게 해주는 기술.
OAuth
별도의 회원 가입이 없이 기존에 가지고 있던 계정으로 서비스를 이용하고 인증 가능하게 해주는 기술 회원가입을 새롭게 할 필요가 없어서 편해진다.
이런 다양한 기술을 간편하게 사용할 수 있게 해주는 라이브러리가 OKTA라이브러리이다.
사용해 본 적은 없는데 큰 허들이 없으면 사용해 보려 한다.
Okta랑 OAuth랑 함께 사용하면 더 좋다고 하니 이 기회에 한번 사용해 보려 한다.
옥타?Okata
옥타라고 읽는 게 맞는지 모르겠지만 okta에 대한 글들을 찾아보니 보안이나 인증 관련된 부분들을 개발자가 어렵지 않게 사용할 수 있을 거 같다.
보안 인증 부분을 제대로 완벽하게 구현하려면 참 힘든 부분이 있지 모든 프로젝트의 공통적인 부분이지만 계속 유지하기도 힘들고 잘 만들지 않으면 문제의 소지도 많기 때문에 이런 걸 다 해결해 준다니 엄청 좋아 보인다. 쉽게 사용 가능하고 무료인지는 알아봐야겠지만 돈 내라고 나오는 부분은 애플리케이션 5개 이상이면 돈 내는 거 같기도 하고 좋아 보이는 거에 비해선 한글 문서들이 적은 거 같다.
GraalVM Native Support
스프링 프레임웍들은 어플리케이션을 시작하면 수초에서 수십 초씩 초기 부팅을 하는데 이를 개선했다고 docker 이런 게 발전하다 보니 시스템에 어플 올리는데도 부팅이 빨리 돼야 하나 보다 그래서 그쪽으로 업그레이드되고 있는 거 같다.
애플리케이션을 실행파일로 만들고 그 실행돼서 부팅속도가 빠르기를 기대합니다.
빠르면 좋은 거니까요.
새로운 버전의 프로젝트를 시작하려 하면 새롭게 시도해 보려던 것보다 더 새롭게 알아야 할 주변 라이브러리들이 더 많이 생기는 건 그만큼 발전하고 있다는 것이다.
나중엔 개발자는 로직만 집중하고 나머지는 AI가 해결해 주면 좋을 거 같다. 근데 이거 머라고 읽어야 하나..쥐RAAL..
종속성에서 Spring Data Neo4j도 선택해 주고 리액티브론 단어가 안 붙은 걸로 봐선 리액티브가 지원이 되는 것인지
NoSQL이라 원래가 리액티브로 돌아가는 것인지 쉽사리 찾아지지는 않는다.
어차피 Neo4j 컨트롤은 FIrebase의 Functions를 사용할 것이라.
Sprng Boot 버전은 3.0.1로 하고 추가한 종속성은 아래와 같다
어김없이 찾아오는 오류 역시 한방에 되지 않는다.
JDK를 설정해 준거 같은데 Ctrl+Shift+Alt+S로 프로젝트 설정에 들어가서 JDK를 추가해 준후
다시 Spring initializr을 이용해 종속성을 추가해 준후 생성하면 모듈이 생성됩니다.
그리고 다시 메뉴의 > 파일>새로 만들기> 기존파일에 있는 모듈로 모듈을 프로젝트에 추가해 주면 됩니다.
프로젝트에 모듈 추가 후 디렉터리가 표시가 되지 않아 프로젝트 닫았다 다시 들어오니 표시가 되네요.
이런 버그가 ㅠㅠ 오래된 프로그램이고 개발자들이 만들고 쓰는 프로그램이라도 어쩔 수 없나 봅니다.
일단 실행을 하면 부족한 부분의 세팅을 하라고 오류들이 뜹니다.
2023-01-21T14:54:14.438+09:00 INFO 172704 --- [ restartedMain] devkimchi.kweb.KwebApplication : No active profile set, falling back to 1 default profile: "default"
2023-01-21T14:54:14.466+09:00 WARN 172704 --- [ restartedMain] ironmentPostProcessorApplicationListener : Your Okta Issuer URL is missing. You can copy your domain from the Okta Developer Console. Follow these instructions to find it: https://bit.ly/finding-okta-domain
To fix this add the `okta.oauth2.issuer` property to your application environments.
2023-01-21T14:54:14.466+09:00 INFO 172704 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2023-01-21T14:54:14.466+09:00 INFO 172704 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2023-01-21T14:54:14.918+09:00 INFO 172704 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Neo4j repositories in DEFAULT mode.
2023-01-21T14:54:14.927+09:00 INFO 172704 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 6 ms. Found 0 Neo4j repository interfaces.
2023-01-21T14:54:14.929+09:00 INFO 172704 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Neo4j repositories in DEFAULT mode.
2023-01-21T14:54:14.930+09:00 INFO 172704 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 0 ms. Found 0 Neo4j repository interfaces.
2023-01-21T14:54:15.264+09:00 WARN 172704 --- [ restartedMain] ion$DefaultTemplateResolverConfiguration : Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
2023-01-21T14:54:15.418+09:00 INFO 172704 --- [ restartedMain] o.neo4j.driver.internal.DriverFactory : Direct driver instance 887850476 created for server address localhost:7687
2023-01-21T14:54:15.443+09:00 INFO 172704 --- [ restartedMain] o.s.b.a.e.web.EndpointLinksResolver : Exposing 1 endpoint(s) beneath base path '/actuator'
2023-01-21T14:54:15.484+09:00 INFO 172704 --- [ restartedMain] ctiveUserDetailsServiceAutoConfiguration :
Using generated security password: 2bee7baa-4d39-448a-8e9c-c1e604d366fd
2023-01-21T14:54:15.734+09:00 INFO 172704 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
2023-01-21T14:54:15.866+09:00 INFO 172704 --- [ restartedMain] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 8080
2023-01-21T14:54:15.876+09:00 INFO 172704 --- [ restartedMain] devkimchi.kweb.KwebApplication : Started KwebApplication in 1.625 seconds (process running for 2.055)
2023-01-21T14:54:16.146+09:00 WARN 172704 --- [o4jDriverIO-3-3] o.s.b.a.n.Neo4jReactiveHealthIndicator : Health check failed
org.neo4j.driver.exceptions.ServiceUnavailableException: Unable to connect to localhost:7687, ensure the database is running and that there is a working network connection to it.
at org.neo4j.driver.internal.async.connection.ChannelConnectedListener.databaseUnavailableError(ChannelConnectedListener.java:72) ~[neo4j-java-driver-5.2.0.jar:5.2.0-e0e5b6a8d95e38084c5cf9ac39e3ee8c9f5f05d0]
at org.neo4j.driver.internal.async.connection.ChannelConnectedListener.operationComplete(ChannelConnectedListener.java:66) ~[neo4j-java-driver-5.2.0.jar:5.2.0-e0e5b6a8d95e38084c5cf9ac39e3ee8c9f5f05d0]
at org.neo4j.driver.internal.async.connection.ChannelConnectedListener.operationComplete(ChannelConnectedListener.java:36) ~[neo4j-java-driver-5.2.0.jar:5.2.0-e0e5b6a8d95e38084c5cf9ac39e3ee8c9f5f05d0]
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583) ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559) ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118) ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321) ~[netty-transport-4.1.86.Final.jar:4.1.86.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337) ~[netty-transport-4.1.86.Final.jar:4.1.86.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) ~[netty-transport-4.1.86.Final.jar:4.1.86.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) ~[netty-transport-4.1.86.Final.jar:4.1.86.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) ~[netty-transport-4.1.86.Final.jar:4.1.86.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~[netty-transport-4.1.86.Final.jar:4.1.86.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: localhost/127.0.0.1:7687
모 이런 것들... 크게 보면 okta, neo4 j 값들 설정하라는 거 같네요
다음 편에 Okta 가입과 설정등을 하고
로컬에 Neo4j를 설치해 개발 환경을 맞추고 세팅을 해보겠습니다.
'개발 > 스프링 FIreBase Neo4j' 카테고리의 다른 글
SPRING BOOT SECURITY 설정 (0) | 2023.01.22 |
---|---|
Neo4j 설치 후 비밀번호 변경 (feat cypher) (6) | 2023.01.22 |
Neo4j Desktop 설치, 스프링 프로파일 속성 (0) | 2023.01.22 |
SPRING INITIALZR 생성 후 PROFILES 설정 방법 feat Okata (0) | 2023.01.21 |
SPRING BOOT + FIREBASE (DATABASE,FUNCTIONS,AUTH) + NEO4J 프로젝트 시작 (0) | 2023.01.21 |