묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
값타입 컬렉션에 대해서 질문드립니다.(영속성 전이, 고아객체로 인해 궁금증)
Member 코드 : @Entitypublic class Member extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "MEMBER_ID") private Long id;..생략.. @OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true) private List<AddressEntity> addressHistory = new ArrayList<>();..생략..} AddressEntity 코드: @Entitypublic class AddressEntity { @Id @GeneratedValue private Long id; private Address address; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "MEMBER_ID") private Member member;..생략..} 값타입컬렉션을 일대다 혹은 다대일로 설정하면(저는 다대일로 설정해봤습니다.) Member코드에서 영속성 전이와 고아객체를 사용하잖아요 ? 그럼 값타입 컬렉션은 그냥 값타입과는 다르게 여기저기 막 쓰지 못하고 단일소유자일 때만 사용할 수 있는 건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
IntelliJ에선 정상적으로 build가 되는데 cmd에서는 build가 안됩니다 ㅜㅜ
환경은 윈도우 10이고 인텔리제이 내부 터미널, 윈도우 cmd 둘 다 gradlew build 를 실행하면 해당 에러가 뜨네요... 구글링 해본 결과 자바 11버전이 정상적으로 환경변수에 할당이 안되어서 그렇다길래 환경 변수 설정도 다시 해줬는데 똑같습니다... 우선 java -version 결과는 이렇게 뜨고, gradlew 명령어랑 gradlew clean은 정상적으로 작동합니다. 어떤 부분에서 문제가 생겨서 이렇게 되는지 도저히 해결을 못하겠습니다 ㅜㅜ 오류 메세지로 봐서는 환경변수에 자바 버전이 잘못 할당된 것 같은데... 이번에 스프링 공부 시작하면서 아예 자바를 삭제하고 자바 11로 새로 깔았는데 예전 path가 아직 남아서 문제인건지 다른 곳에서 문제가 생겼는지... 도움 부탁드립니다 ㅜㅜ
-
미해결블렌더 파이썬 BPY 입문강의
코드파일을 저장해도 블렌더에서 리로드 되지 않는것 같습니다.
vscode에서 옵션 -> 확장 -> blender에서 이렇게 옵션이 켜져 있는데, 저장후 리로드가 안되는것 같습니다 import bpy class Tools_RandomCube(bpy.types.Operator): bl_idname = "tool.random_cube" bl_label = "random_cube" bl_options = {"REGISTER" , "UNDO"} def execute(self, context): for i in range(3): bpy.ops.mesh.primitive_cube_add(size=2, enter_editmode=False, align='WORLD', location=(0, 0, 0), scale=(1, 1, 1)) return {"FINISHED"} 로 작성했는데 큐브가 자꾸 하나만 생성되길래 블렌더를 다시 껐다 켰더니 그제서야 3개가 생성됩니다. 저장할때마다 블렌더에 리로드 되기 위해 조치해야할 다른사항이 있을까요? 감사합니다.
-
미해결블렌더 파이썬 BPY 입문강의
(7:33) 디버그 콘솔에 있는 파란색 문구들이 안떠요 !
(7:33) 블렌더 켜져있는 상태에서 ctrl + s를 눌러도 디버그 콘솔에 나오는 파란색 문구들이 뜨지 않습니다. 설정에서 Blender > Addon: Reload On Save 옵션도 켜져 있는데 왜 그런걸까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
레이아웃에서 공통과 추가를 인자로 받는 부분에 대해 질문이 있습니다.
[템플릿 레이아웃1 강의에서의 질문] 안녕하세요. 김영한 강사님. 강의 정말 잘 듣고있고 있는데 궁금한 점이 생겨 여쭤봅니다. base.html 의 틀을 여러 곳에서 사용하고 싶을 때 강의에선 th:fragment="common_header(title, links)" 와 같이 공통을 제외하고 바뀌어야할 부분은 인자로 받아서 replace 하는데 사용하고 있습니다. 그런데, base.html를 사용하고 싶은 어떤 a.html이 있다고 가정할 때 a.html은 넘겨줄만한 추가 links나 title이 없는 경우 th:replace="template/layout/base :: common_header(~{::title})" 다음과 같이 사용할 수 있도록 선택적으로 인수를 받거나 주는 방법은 없을까요? 레이아웃이 되는 html은 사용하고자하는 많은 html 이 있을 것이라고 생각합니다. 선택적으로 받을 수 없다면 항상 사용하고자 하는 html 쪽에서 추가할 것이 없고 레이아웃을 그대로 따르기만 하는 상황에선, 쓸모없는 태그를 만들고 필요없는 인자를 항상 넘겨야하는지 의문이 생깁니다. 강의를 다듣고 강의에서 배운 내용들을 적극 활용해 혼자서 프로젝트를 해보는 중에 이런 문제에 부딛혔고 여차여차 어떻게든 해나가려다 보니 thymeleaf-layout-dialect 라는 것도 줏어듣게 되었는데, 이부분은 의존성 추가를 해서 해결하는 부분이라 순수하게 타임리프에서 제공하는 방법으론 해결할 수 없는지 궁금합니다. 감사합니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
컨트롤러와 스탯
강의를 보면서 이렇게 저렇게 수정도하고 시도도 해보면서 만들고 있습니다. Attacked를 만들때 ① 강의와 같이 stat안에 메소드를 만들고 stat을 인자로 넘겨서 함수를 처리를 하는것과 ② stat을 컨트롤러에 public으로 캐싱해서 몬스터컨트롤러.Stat.Attacked(~~~)로 사용하는 것과 차이가 클까요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
Storm 토폴로지 배포 후 Spout, bolt 에러
kafka-console-consumer 까지는 데이터가 들어오는것을 확인했지만 HBASE에 데이터가 들어오지 않아서 Storm UI를 확인해봤더니 DriverCarInfo 토폴로지에 아래 캡처와 같이 에러가 나고 있습니다. 어떤 이유로 나는지 알수가 없네요... 아래는 해당 Spout, Bolt에 나오는 상세 에러로그입니다. [kafkaSpout 에러] java.lang.RuntimeException: java.lang.RuntimeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/topics/SmartCar-Topic/partitions at org.apache.storm.kafka.DynamicBrokersReader.getBrokerInfo(DynamicBrokersReader.java:99) at org.apache.storm.kafka.trident.ZkBrokerReader.<init>(ZkBrokerReader.java:44) at org.apache.storm.kafka.KafkaUtils.makeBrokerReader(KafkaUtils.java:64) at org.apache.storm.kafka.KafkaSpout.open(KafkaSpout.java:83) at org.apache.storm.daemon.executor$fn__10112$fn__10127.invoke(executor.clj:609) at org.apache.storm.util$async_loop$fn__624.invoke(util.clj:482) at clojure.lang.AFn.run(AFn.java:22) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.RuntimeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/topics/SmartCar-Topic/partitions at org.apache.storm.kafka.DynamicBrokersReader.getNumPartitions(DynamicBrokersReader.java:113) at org.apache.storm.kafka.DynamicBrokersReader.getBrokerInfo(DynamicBrokersReader.java:83) ... 7 more Caused by: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/topics/SmartCar-Topic/partitions at org.apache.zookeeper.KeeperException.create(KeeperException.java:114) at org.apache.zookeeper.KeeperException.create(KeeperException.java:54) at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1659) at org.apache.curator.framework.imps.GetChildrenBuilderImpl$3.call(GetChildrenBuilderImpl.java:242) at org.apache.curator.framework.imps.GetChildrenBuilderImpl$3.call(GetChildrenBuilderImpl.java:231) at org.apache.curator.connection.StandardConnectionHandlingPolicy.callWithRetry(StandardConnectionHandlingPolicy.java:64) at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:100) at org.apache.curator.framework.imps.GetChildrenBuilderImpl.pathInForeground(GetChildrenBuilderImpl.java:228) at org.apache.curator.framework.imps.GetChildrenBuilderImpl.forPath(GetChildrenBuilderImpl.java:219) at org.apache.curator.framework.imps.GetChildrenBuilderImpl.forPath(GetChildrenBuilderImpl.java:41) at org.apache.storm.kafka.DynamicBrokersReader.getNumPartitions(DynamicBrokersReader.java:110) ... 8 more [HBASE Bolts 에러] ava.lang.RuntimeException: java.io.IOException: Unable to establish connection to HBase table DriverCarInfo at com.wikibook.bigdata.smartcar.storm.HBaseBolt.prepare(HBaseBolt.java:40) at org.apache.storm.daemon.executor$fn__10180$fn__10193.invoke(executor.clj:803) at org.apache.storm.util$async_loop$fn__624.invoke(util.clj:482) at clojure.lang.AFn.run(AFn.java:22) at java.lang.Thread.run(Thread.java:748) Caused by: java.io.IOException: Unable to establish connection to HBase table DriverCarInfo at com.wikibook.bigdata.smartcar.storm.HTableConnector.<init>(HTableConnector.java:37) at com.wikibook.bigdata.smartcar.storm.HBaseBolt.prepare(HBaseBolt.java:38) ... 4 more Caused by: java.io.IOException: java.lang.reflect.InvocationTargetException at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:240) at org.apache.hadoop.hbase.client.ConnectionManager.createConnection(ConnectionManager.java:441) at org.apache.hadoop.hbase.client.ConnectionManager.createConnection(ConnectionManager.java:434) at org.apache.hadoop.hbase.client.ConnectionManager.getConnectionInternal(ConnectionManager.java:312) at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:185) at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:151) at com.wikibook.bigdata.smartcar.storm.HTableConnector.<init>(HTableConnector.java:35) ... 5 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:238) ... 11 more Caused by: java.lang.ExceptionInInitializerError at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2639) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2612) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:169) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:354) at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296) at org.apache.hadoop.hbase.util.DynamicClassLoader.initTempDir(DynamicClassLoader.java:133) at org.apache.hadoop.hbase.util.DynamicClassLoader.<init>(DynamicClassLoader.java:103) at org.apache.hadoop.hbase.protobuf.ProtobufUtil.<clinit>(ProtobufUtil.java:256) at org.apache.hadoop.hbase.ClusterId.parseFrom(ClusterId.java:64) at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:75) at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:105) at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.retrieveClusterId(ConnectionManager.java:944) at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:720) at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:649) ... 16 more Caused by: java.lang.IllegalStateException: Shutdown in progress at java.lang.ApplicationShutdownHooks.add(ApplicationShutdownHooks.java:66) at java.lang.Runtime.addShutdownHook(Runtime.java:211) at org.apache.hadoop.util.ShutdownHookManager.<clinit>(ShutdownHookManager.java:47) ... 31 more
-
미해결홍정모의 게임 만들기 연습 문제 패키지
게임 실행 중 계속 프레임이 달라지는 문제점
안녕하세요, 코드 작성중에 궁금한 점이 있어 질문드립니다. 예제 코드를 계속 컴파일하다가 이상한 점을 발견했는데요, 게임의 fps가 계속 달라진다는 것입니다. 어쩔때에는 물체가 부드럽게 이동하고, 어쩔때에는 물체가 뚝뚝 끊겨서 이동하는 느낌을 받습니다. 원인이 무엇일까 생각해보다가, Game2D 클래스의 run() 메소드에 관련 코드가 있는 것을 확인했습니다. 위 if문으로 인해서 시스템이 계속 sleep을 하니까 프레임이 끊기는 것처럼 보이더라구요. 또한 dt 값을 계속 확인해보니 값이 불규칙한 것을 확인했습니다. dt 값이 불규칙적이니, sleep도 일정하지 않게 작용하면서 화면 프레임이 계속 달라지는 현상이 생기는 것으로 예상됩니다. (dt 값이 왜 불규칙한지는 모르겠습니다.) 찾아보다가 glfw 메소드 중에 glfwSwapInterval 이라는 메소드가 있어서 사용해봤는데, 인자로 1을 넣어주면 fps가 자동으로 144에 맞춰지더라구요. 또한 일정한 fps 값을 유지시켜주니, 컴파일 할때마다 게임화면의 fps가 달라지는 문제점도 해결된 것 같습니다. 그렇다면 timer class 를 사용하지 않고, 어차피 timer는 프레임 제한을 위한 도구이니 앞서 이야기한 glfwSwapInterval 메소드를 사용해도 괜찮을까요? 위는 timer class를 사용했을 때 FPS를 계산한 것이고, (worst case인 경우 위처럼 프레임이 변합니다.) 위는 glfwSwapInterval 메소드를 사용했을 때 FPS입니다.
-
미해결스프링 시큐리티
Custom `FilterSecurityInterceptor` 초기화 시점 변경에 대한 질문입니다
저의 테스트 환경이 DB 데이터가 구동시점에 초기화가 되도록 설정한 상태입니다. 이 때문에 아래와 같은 이슈가 있습니다. DB 데이터 초기화가 되지 않아 RequestMap 에 URL Resource 를 불러오지 못해서`인가`처리가 불가능합니다 이것은,src/main/resources/data.sql 또는SetupDataLoader.java 를 통해 데이터를 설정하다 보니초기화 순위에 밀려 Resource 설정이 안되는 상태를 볼 수 있었는데요, Reousrce 데이터가 입력되는 시점은 Table 이 만들어 진 직후, SecurityMetadataSource 에서 Resource 목록을 불러오고,(row = 0) Resource INSERT 문이 실행됩니다 질문입니다 이를 해결하기 위해서는,DB 인서트 쿼리를 SecurityConfig 보다 우선으로 실행하거나,customFilterSecurityInterceptor 가 @Bean 으로 등록되는 시점을 늦춰야 되는데, 혹시 , SecurityConfig 자체가 초기화 되는 시점을 늦출 수는 없을까요?(리소스 세팅 이후.. 실행) Spring 이벤트로 처리가 가능하다면 Spring 이벤트중 적절한 시점의 이벤트는 어떤게 있을까요?( DB 데이터 입력이 ContextRefreshedEvent 보다 먼저 되어야 하는데, 방법을 모르겠습니다) 외람되지만, JPA 관련 이벤트나 @Pre, Post Persist 로도 가능할까요? 어떤식으로 해결해는것이 좋을까요?읽어주셔서 감사드립니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
카메라 컨트롤러가 게임매니저에서 직접 플레이어를 받으면
카메라 컨트롤러가 게임매니저에게 직접 _player = Managers.Game.player로 플레이어를 받으면 안되나요? 호출순서의 문제인가요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 챗봇 사이트 만들기
Error: 7 PERMISSION_DENIED: IAM permission 오류
(node:25864) UnhandledPromiseRejectionWarning: Error: 7 PERMISSION_DENIED: IAM permission 'dialogflow.sessions.detectIntent' on 'projects/test-chat-bot-app-321515/agent' denied. at Object.callErrorFromStatus (C:\Users\wjdwl\node_modules\@grpc\grpc-js\build\src\call.js:31:26) at Object.onReceiveStatus (C:\Users\wjdwl\node_modules\@grpc\grpc-js\build\src\client.js:179:52) at Object.onReceiveStatus (C:\Users\wjdwl\node_modules\@grpc\grpc-js\build\src\client-interceptors.js:336:141) at Object.onReceiveStatus (C:\Users\wjdwl\node_modules\@grpc\grpc-js\build\src\client-interceptors.js:299:181) at C:\Users\wjdwl\node_modules\@grpc\grpc-js\build\src\call-stream.js:145:78 at processTicksAndRejections (internal/process/task_queues.js:75:11) (Use `node --trace-warnings ...` to show where the warning was created) (node:25864) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) (node:25864) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that 이렇게 떴는데 구글링을 해도 해결이 안돼서 질문글 올립니다. 어떻게 해결하면 좋을까요? are not handled will terminate the Node.js process with a non-zero exit code.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
리스트 항목 제거
리스트 제거 버튼을 천천히 하나씩 누르면 로컬스토리지에서 하나씩 제거되는 모습을 볼 수 있는데 연속적으로 빠르게 누르면 로컬스토리지에는 일부 데이터가 남아있는 현상이 나타납니다. 코드를 따라 작성했지만 저만 이와 같은 현상이 일어나나해서 글을 작성했습니다:)
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문취소 테스트시
주문취소쪽 테스트하다가 궁금한점 있어 질문드립니다. 취소할 주문ID를 조회하고 Order order = orderRepository.findOne(orderId); order.cancel(); 로 주문취소하기 전에 orderItems에 값이 넣어져 있는지 모르겠습니다. Order와 OrderItem은 @OneToMany로 기본이 LAZY 로딩이라 orderItems을 직접 호출하기 전까지는 데이터를 조회하지 않는거로 알고 있는데 어떻게 orderItems에 값이 채워져서 취소가 되는지요?... for (OrderItem orderItem : orderItems) { orderItem.cancel();} 저 for문 시점에 데이터를 조회하면 이해하겠는데 디버깅해보면 order를 조회할때 이미 값이 다 채워져 있습니다...
-
미해결백엔드 프레임워크 만들기
다섯번째 생각해볼 문제에 대한 제 생각입니다. 피드백 가능할까요?
벌써 제로님 강의의 수강률이 70%가 넘어가고있네요. 정말 재밌게 보고있습니다. 코드를 clone해오는 것은 실력이 안쌓인다 생각하여 깃허브에 코드를 직접 타이핑하면서 문제가 생기면 디버깅을 하면서 보고있다보니 진도가 느린 감도 없지 않아 있는거같네요. 그렇지만, 이번에도 코드를 직접 따라치고 디버깅을 하면서 전체적인 맥락을 계속 짚을 수가 있게 된거같습니다 :) 각설하고 제가 이번에 생각해볼 문제에 대한 생각은 다음과 같습니다. 1. 인증 정보는 세션에 저장됩니다. 하지만 세션을 사용할 수 없는 REST 같은 환경일 경우 인증정보를 획득할 수 있는 방법을 생각해보세요. JWT와 같은 서비스를 통해 토큰을 활용하여 인증정보를 획득할 수 있을 것 같습니다. 음 여기서 JWT에 대한 질문을 올려도 되는지 모르겠지만 KeyCloak 이나 Vault와 같은 걸로 토큰을 중앙 제어하는 것이 안전하다 들었습니다. 특히, 키클록은 인증/인가에 대한 많은 서비스를 제공해서 편리하다고 알고 있었는데 Access Token을 DB에 저장하는 것은 위험한지가 궁금하더라구요. 제가 현재 하는 사이드 프로젝트는 KeyCloak 도입은 아직 하지말자하고 테스트는 DB에서 진행 중인데 DB에 하면 위험한 행위일지? (액세스토큰 탈취 위험이 있기에..) 하지만 키클록이나 볼트도 동일하다고 생각하고 있기도 합니다.그렇다면 DB에 안전하게 액세스토큰을 저장하는 방법이 있을까요? 일단 만료시간을 최대한 짧게 해두고 리프레시토큰을 통해서 하고 있는데 이정도까지만해도 안전한지 궁금합니다. 또한, 토큰을 사용할 경우 Http header에 담는게 좋을지 아니면 POST request의 경우 Body에 담는 케이스도 경우도 있는데 https://datatracker.ietf.org/doc/html/rfc6750#section-2여길 보니 둘 다 해당 내용에 맞춰서 하면 별 문제 없는지도 궁금해졌습니다. 2. 인증과 접근제어를 통해 기밀성과 무결성을 보호하기 위한 벨 라파둘라와 비바 규칙을 알아 보세요.1. 벨 라파둘라 모델 - 기밀 정보에 대한 데미터 기밀성 및 통제된 액세스에 초점을 맞춘 모델로, 서브젝트와 오브젝트로 구분된다. 이 모델은 State-Machine의 개념을 기반으로 만들어졌으며, 컴퓨터 시스템에서 허용 가능한 상태 세트를 가지며 한 상태에서 다른 상태로 전환은 전환 기능에 의해서 정의된다. 이 모델은 두 개의 MAC 규칙을 정의한다. Simple Security Property : 더 높은 보안 수준의 개체를 읽을 수 없다. (No Read-Up) Star Secuirty Property : 낮은 보안 수준의 개체에 쓸 수 없다. (No Write-Down) 만약, 기밀, 비밀, 공개로 세 상태를 분류한다면 다음과 같다. 비밀 취급자는 자신의 상태보다 높은 기밀 파일과 자신의 상태와 동급인 비밀 파일을 만들 수 있으나, 공개 파일을 만들 수는 없으며, 비밀과 공개파일은 읽을 수 있으나 기밀 파일을 읽을 수는 없다. 한계점으로는 무결성을 파괴할 수 있다는 점이다. (낮은 레벨의 인가자가 상위 레벨의 문서를 변경가능하기 때문에) 2. 비바 모델 - 데이터의 무결성을 보장하기 위해 설계된 접근 제어 규칙을 작성하는 모델 델 라파둘라 모델("read down, write up")과 대조적으로 "read up, write down" 형식이며, 자신의 상태 이하의 파일을 만들 수 있으며, 자신의 상태 이상의 파일을 읽을 수 있다.따라서, 벨 라파둘라 모델과 다른 아래와 같은 규칙을 갖는다. Simple Security Property : 더 낮은 보안 수준의 개체를 읽을 수 없다. (No Read-Down) Star Secuirty Property : 높은 보안 수준의 개체에 쓸 수 없다. (No Write-Up) 이 두 모델은 처음 알게된 모델인데 벨 라파둘라 모델의 무결성 문제 때문에 비바모델이 나온 것으로 학습하였는데 사실 비바모델도 자기보다 높은 수준의 파일을 읽다보니 이것도 보안의 문제가 되지않나 궁금해지더라구요. 제로님의 생각은 어떠신지 궁금합니다! 3. 웹 브라우져에서 사용하는 쿠키는 WAS 에 유용한 정보를 제공합니다. 만약 쿠키가 3자에 노출되었을때 발생하는 문제점을 생각해보세요. 만약, 인증쪽에 쿠키를 사용하게 된다면 쿠키 스니핑과 같은 공격에 취약해질 수 있습니다. 이 쿠키정보를 토대로 로그인을 시도할 수 있는 문제도 발생한다고 생각합니다. 더 나아가 개인정보 침해의 문제가 있는데 사용자 이메일이나 브라우저 고유값 등과 같은 값이 포함되는 문제일 경우 이 사용자가 어떤 사이트를 접속했는지 그리고 접속한 사이트를 추정하여 연령대 및 성별 식별까지 가능하다고 생각합니다. 따라서, 개인정보보호를 위해서는 쿠키에 저장될 값은 최소화해야하며 개인정보나 그런 값들이 존재할 경우에는 난독화 혹은 https를 통해 모든 통신이 암호화되게끔 해야될 것 같습니다.
-
미해결태블로 대시보드 기초
질문있어요..!
강의 잘 봤습니다! 영상을 보고 직접 따라하던 중, 대시보드 속에 숫자들이 #####처리되는 현상이 생겼는데요, 이건 어떻게 해결해야 할까요? ㅜ
-
미해결모의해킹 실무자가 알려주는, 파일 업로드 취약점 공격 기법과 실무 사례 분석 : PART 1
system() 함수 결과값 한글 깨짐 현상
Windows IP ���� �̴��� ����� �̴���: �̵�� ���� . . . . . . . . : �̵�� ���� ���� ���Ằ DNS ���̻�. . . . : �̴��� ����� VirtualBox Host-Only Network: ���Ằ DNS ���̻�. . . . : ��ũ-���� IPv6 �ּ� . . . . : . . . �̴��� ����� Bluetooth ��Ʈ��ũ ���� 2: �̵�� ���� . . . . . . . . : �̵�� ���� ���� ���Ằ DNS ���̻�. . . . : 하이
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Apply Root Motion
다른 에셋을 사용해서 몬스터를 만들었습니다. Apply Root Motion은 애니메이션의 위치이동이 오브젝트의 위치에 반영되는걸로 알고있는데요 ------------------------------------------ ①몬스터가 Apply Root Motion을 체크했을때만 transform.rotation = Quaternion.Slerp(~~~)를 통한 회전이 적용되고 있습니다. ②제가 사용한 모델의 애니메이션은 제자리의 굉장히 단순한 애니메이션이며 애니메이션에 rotation이 포함되어있지도 않습니다. ③애니메이터를 disable 했을때도 회전이 적용되는것으로 보아 애니메이터 문제인거같은데 =============================== Q1) 애니메이터가 회전을 막는 이유가 뭘까요? Q2) Apply Root Motion을 체크했을때만 회전이 적용되는 이유는 뭘까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
argument resolver
클라이언트 요청이 왔을 때 아규먼트 리졸버가 HTTP 메시지 컨버터를 통해 파싱한 후 DTO를 생성해서 컨트롤러에 전달해주는 걸로 아는데 이 때, DTO 내부 필드를 생성자를 통해 주입하는 건가요 세터를 통해주입하는건가요?? 기본 생성자로 생성한후 세터로 주입하는건가요?
-
미해결백엔드 프레임워크 만들기
네번째 생각해볼 문제 제 생각을 적어보았습니다. 피드백 가능하실까요?
1. 비즈니스로직은 사용자 요구사항을 개발자가 코드로 구현한 산출물을 의미합니다. 비즈니스 로직을 재사용 할 수 있는 방법을 생각해보세요. 의존성 주입과 제어역전을 활용하여 비즈니스 로직을 재사용할 수 있습니다. 이 부분은 강의를 들으면서 따로 이해가 안가기도 했고 궁금하여서 좀 더 깊게 고민해봤는데, 토비의 스프링에서도 그렇고 다른 책들을 봐도 사실 프레임워크의 핵심은 DI와 IoC라는 것을 이해했고, 이번 챕터에 자세히 설명해주셔서 이해가 어느정도는 갔습니다. 그러나, DI와 IoC가 코드의 재사용을 한다는 부분이 100% 이해가 잘 안갔는데, 저희가 작성한 코드를 보자면 MasterController의 execute() 메서드를 통해 해당 키를 가져와서 그 키를 사용하는 이를테면 Emp001에 있는 select 메서드를 활용한다까지는 이해했습니다. 이 재사용성이라는게 그렇다면 이미 작성한 클래스의 메서드를 활용한다라고 이해하면될까요? 단순히 MasterController는 리플렉션을 통해 해당 클래스를 가져와서 메서드를 호출함으로서 컨트롤러에서 비즈니스 로직이 처리되는 것이 아니라 컨트롤러는 단순히 해당 키를 받아서 어떤 일을 처리하는지 위임하는 역할을 해주는지 궁금합니다. 2. 우리가 만든 프레임워크를 기준으로 IoC 흐름을 생각해보세요.위의 내용이랑 비슷한데 1. MasterController.execute() 메서드를 통해 키를 주입 2. 이때 MasterControllerD에서 해당 서비스에 대한 SQL 처리를 수행 2.1 SqlRunner().getSqlRuuner().getTable().getBox() 위와같은 체이닝을 통해 우리가 기존에 준비해둔 FW_SQL을 통해서 FW_CONTROLLER로 처리할 데이터 준비3. FW_CONTROLLER에서 넘어온 CLASS_NAME과 METHOD_NAME을 리플렉션을 통해 실제 수행이런 과정으로 되면서 MasterController는 키를 통해서 어떤 클래스의 메서드를 수행할 지 ControllerDao의 결과값을 통해서 가져온 후 실제 최종 수행은 리플렉션 invoke를 통해 해당 메서드를 수행하여 결과값을 리턴하는 식으로 돌아간다라고 이해했는데 맞을지 궁금합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
AWS SQS 통해 호출되는 Thread 경우 @ControllerAdvice 선언해도 핸들러 되지 않는 문제
3번째 이미지를 봐주시면 2번 내용입니다. (AWS SQS서버에서 Local Server로 호출시 잡히는 컨트롤러입니다.) 에러 발생되면 여기에 핸들러 잡혀야 하는데 왜 안잡히는걸까요?.... AWS SQS 통해 호출되는 스레드만 그렇고 그것이 아닌 직접 호출 (Main Thread) 통해 호출 할 경우 여기에 핸들러 잡히게 되는데... 왜 AWS SQS 통해 호출되는 스레드 한에서만 에러 발생시 여기에 안잡히는 걸까요? Main Thread가 아니라서 그런걸까요?? 생각해보면 Main Thread가 아닌 Main으로부터 파생된 멀티 스레드 경우 거기서 에러 발생하면 핸들러에 안잡히는 걸로 알고 있습니다.