묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1주차 개념 #4 시간복잡도 질문 있습니다.
강의를 듣고 이진탐색 시간복잡도를 살펴보기 위해 문제를 하나 풀었습니다.https://www.acmicpc.net/problem/1920 수찾기라는 문제인데 http://boj.kr/ac3378d1315b433b80567fa81531fd67위처럼 이진탐색을 재귀로 구현을 하였는데 왜 시간초과가 발생하는지 잘 이해가 안가는데 왜 그런지 자세하게 설명이 가능할까요..??
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
mac 사용자분들 최신 톰캣입니다.
- name: Download Tomcat9 from tomcat.apache.org hosts: devopstasks: - name: Create a Directory /opt/tomcat9file:path: /opt/tomcat9state: directorymode: 0755 - name: Download Tomcat using get_urlget_url:url: https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.83/bin/apache-tomcat-9.0.83.tar.gzdest: /opt/tomcat9/apache-tomcat-9.0.82.tar.gzmode: 0755checksum: sha512:https://downloads.apache.org/tomcat/tomcat-9/v9.0.83/bin/apache-tomcat-9.0.83.tar.gz.sha512
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
github repository url
올려주신 파일을 git clone하고 제 레포지토리에서 생성한다음 jenkins configure 에서 github repository url을 제 레포지토리로 변경하였더니 Console Output MockHttpServletRequest: HTTP Method = GET Request URI = / Parameters = {} Headers = [] Body = <no character encoding set> Session Attrs = {} Handler: Type = com.njonecompany.web.controller.WelcomeController Method = com.njonecompany.web.controller.WelcomeController#index(Model) Async: Async started = false Async result = null Resolved Exception: Type = null ModelAndView: View name = index View = null Attribute = msg value = Hi, there Attribute = today value = Thu Nov 23 03:03:16 UTC 2023 FlashMap: Attributes = null MockHttpServletResponse: Status = 200 Error message = null Headers = [Content-Language:"en"] Content type = null Body = Forwarded URL = /WEB-INF/views/index.jsp Redirected URL = null Cookies = [] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.345 s - in com.njonecompany.web.TestWelcome [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [JENKINS] Recording test results [INFO] [INFO] --- maven-war-plugin:3.2.2:war (default-war) @ web --- [INFO] Packaging webapp [INFO] Assembling webapp [web] in [/var/jenkins_home/workspace/My-Third-Project/target/hello-world] [INFO] Processing war project [INFO] Copying webapp resources [/var/jenkins_home/workspace/My-Third-Project/src/main/webapp] [INFO] Webapp assembled in [56 msecs] [INFO] Building war: /var/jenkins_home/workspace/My-Third-Project/target/hello-world.war [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 8.167 s [INFO] Finished at: 2023-11-23T03:03:18Z [INFO] ------------------------------------------------------------------------ Waiting for Jenkins to finish collecting data [JENKINS] Archiving /var/jenkins_home/workspace/My-Third-Project/pom.xml to com.njonecompany.web/web/1.0/web-1.0.pom [JENKINS] Archiving /var/jenkins_home/workspace/My-Third-Project/target/hello-world.war to com.njonecompany.web/web/1.0/web-1.0.war channel stopped [DeployPublisher][INFO] Attempting to deploy 1 war file(s) [DeployPublisher][INFO] Deploying /var/jenkins_home/workspace/My-Third-Project/target/hello-world.war to container Tomcat 9.x Remote with context null ERROR: Build step failed with exception org.codehaus.cargo.container.ContainerException: Failed to redeploy [/var/jenkins_home/workspace/My-Third-Project/target/hello-world.war] at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:176) at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:81) at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:167) at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:136) at hudson.FilePath.act(FilePath.java:1198) at hudson.FilePath.act(FilePath.java:1181) at hudson.plugins.deploy.CargoContainerAdapter.redeployFile(CargoContainerAdapter.java:133) at hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeployFile(PasswordProtectedAdapterCargo.java:95) at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:113) at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80) at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:47) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767) at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1072) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711) at hudson.model.Run.execute(Run.java:1925) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:442) Caused by: java.net.ConnectException: Connection refused (Connection refused) at java.base/java.net.PlainSocketImpl.socketConnect(Native Method) at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412) at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255) at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237) at java.base/java.net.Socket.connect(Socket.java:609) at java.base/java.net.Socket.connect(Socket.java:558) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:509) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:604) at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:277) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:376) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:397) at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1253) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081) at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:567) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:882) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:895) at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:161) ... 19 more java.net.ConnectException: Connection refused (Connection refused) at java.base/java.net.PlainSocketImpl.socketConnect(Native Method) at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412) at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255) at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237) at java.base/java.net.Socket.connect(Socket.java:609) at java.base/java.net.Socket.connect(Socket.java:558) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:509) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:604) at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:277) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:376) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:397) at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1253) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081) at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:567) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:882) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:895) at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:161) at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:81) at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:167) at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:136) at hudson.FilePath.act(FilePath.java:1198) at hudson.FilePath.act(FilePath.java:1181) at hudson.plugins.deploy.CargoContainerAdapter.redeployFile(CargoContainerAdapter.java:133) at hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeployFile(PasswordProtectedAdapterCargo.java:95) at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:113) at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80) at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:47) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767) at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1072) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711) at hudson.model.Run.execute(Run.java:1925) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:442) Build step 'Deploy war/ear to a container' marked build as failure Finished: FAILURE 이렇게 나옵니다. Caused byjava.net.ConnectException: Connection refused (Connection refused) 이렇게 나오는데 어떻게 해결해야 할까요?? 레포지토리 주소는 이렇게 옮겨놓았습니다!
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
Transaction 파트에서 에러 발생 후 포스트를 정상적으로 생성하지는 않지만 id값은 증가하는데 정상인가요?
안녕하세요 코드팩토리님!! Transaction 파트에서 궁금한게 있어서 질문 드립니다.Transaction 적용후 테스트로 에러 발생해 보니 정상적으로 포스트가 생성되지는 않습니다.그런데 이후 정상적으로 포스트를 한개 생성하니 이전 마지막 포스트가 10이었으면 이번에는 12번으로 생성됩니다.에러 발생후 포스트는 생성되지 않지만 id 값은 증가하는데 정상적인 현상인가요?? 참고로 에러는 코드팩토리님 처럼 중간에 throw new InternalServerErrorException()을 넣고 저장하면 밑에 코드가 전부 지워져서그냥 images[]에 이미지 넣을때 알파벳 몇개 지워서 일부로 에러 발생하는 방식으로 에러 테스트 했습니다.
-
미해결아두이노 응용 시리즈 2 - 자동화 텃밭 급수 시스템 개발
아두이노 코드 구현 관련
안녕하세요 멘토님!현재 멘토님 코드에 따라, rf 모듈을 통해 데이터를 발송하는 건 serial monitoring을 통해 잘 확인이됩니다. 그러나, 다음과 같은 코드를 작성하고 uploading에 성공했는데, serial monitoring에 습도, 온도 값이 0으로 출력되는 경우는 어떻게 해결해야 하나요?
-
해결됨실전! 스프링 데이터 JPA
왜 쿼리 힌트에 value=true라고 명시해 줘야 하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]이미 개발자가 @QueryHints(value = @QueryHint(name = "org.hibernate.readOnly")) Member findReadOnlyByUsername(String usernane);이렇게 쿼리 힌트를 명시한다는 것 자체가 저 쿼리힌트를 사용하겠다는 건데, 저 value = true는 왜 명시해 줘야 하는 건가요?value=false라고 하는 것과 아예 쿼리 힌트를 명시하지 않은 것의 차이가 있는건가요?
-
미해결
test
test
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
add Database Connection 에서 막혔습니다.
안녕하세요 강사님 add Database Connection 도중 6번째 항목에서 저는 show All Databases나 postgres가 없어서요.. 진행을 못하고 있습니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ssh-copy-id 질문
[root@e83d1887d439 ~]# ssh-copy-id root@172.17.0.3/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system. (if you think this is a mistake, you may want to use -f option)[root@e83d1887d439 ~]# ssh-copy-id root@172.17.0.4/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: ERROR: ssh: connect to host 172.17.0.4 port 22: Connection refused[root@e83d1887d439 ~]# docker exec docker-server systemctl status sshdError: No such container: docker-server현재 발생한 에러인데 sang-gyu ~ docker network inspect bridge [ { "Name": "bridge", "Id": "b1e14a292142598e8bcd79d82082aaff3e38cea78e21bf96be13f653372729fc", "Created": "2023-11-22T09:53:35.039938917Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "172.17.0.0/16", "Gateway": "172.17.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "3fb54fe4c70280511b312f38bee776752f25bc3c63b419be2084e5b27225c643": { "Name": "jenkins-server", "EndpointID": "83739368b00a9e4d8cdfd8d09c96c8a313acf5fbd8bb52f6e715d58d0f79d373", "MacAddress": "02:42:ac:11:00:02", "IPv4Address": "172.17.0.2/16", "IPv6Address": "" }, "8a361c8c922999eba52422d0b6f7608fa2665b1a074a2a9df8ab5ee9d4ae45cd": { "Name": "docker-server", "EndpointID": "d0389122955b24d7db4b1eb7d5f60f001e1ab4de1a58305fa8d9b13711db16f5", "MacAddress": "02:42:ac:11:00:04", "IPv4Address": "172.17.0.4/16", "IPv6Address": "" }, "e83d1887d439e59bbe54630c8968cbcddbb461ca911116b304befa9d628833d4": { "Name": "ansible-server", "EndpointID": "cd7dc8ebd152940c9c2439ba26e9e21704b8426be6cef96cbd71ddb7e52da43b", "MacAddress": "02:42:ac:11:00:03", "IPv4Address": "172.17.0.3/16", "IPv6Address": "" } }, "Options": { "com.docker.network.bridge.default_bridge": "true", "com.docker.network.bridge.enable_icc": "true", "com.docker.network.bridge.enable_ip_masquerade": "true", "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0", "com.docker.network.bridge.name": "docker0", "com.docker.network.driver.mtu": "65535" }, "Labels": {} } ][root@e83d1887d439 ~]# cat /etc/ansible/hosts[devops]172.17.0.3172.17.0.4 왜 에러가 발생하는지 모르겠습니다 엔서블 루트에 접속해서 카피하는게 맞는거같은데 ...
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
compose.yaml 파일 작성시 environment 오류
안녕하세요 강사님 강의를 들으면서 작성중에 다음과 같은 오류가 발생해서 질문드립니다.강의와 동일하게 작성하였으나 string 타입으로 작성해달라고 오류가 뜨는거 같아서요.. 어느부분이 문제인지를 모르겠습니다.
-
해결됨실전! Querydsl
Querydsl Q클래스 생성 오류
plugins { id 'java' id 'org.springframework.boot' version '3.1.5' id 'io.spring.dependency-management' version '1.1.3' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"}group = 'study'version = '0.0.1-SNAPSHOT'java { sourceCompatibility = '17'}configurations { compileOnly { extendsFrom annotationProcessor}}repositories { mavenCentral()}dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor"com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" testImplementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'}tasks.named('test') { useJUnitPlatform()}clean { delete file('src/main/generated')}tasks.named('bootBuildImage') { builder = 'paketobuildpacks/builder-jammy-base:latest'}tasks.named('test') { useJUnitPlatform()}//querydsl 세팅 시def querydslDir = "$buildDir/generated/querydsl"querydsl { jpa = true querydslSourcesDir = querydslDir}sourceSets { main.java.srcDir querydslDir}configurations { querydsl.extendsFrom compileClasspath}compileQuerydsl { options.annotationProcessorPath = configurations.querydsl}인프런에서 질문 & 답변을 보고 gradle 설정했는데도 오류가 계속 발생됩니다.Build and run using : Gradle 로 변경하면 발생 되는 오류 입니다.오류 : Attempt to recreate a file for type study.querydsl.entity.QHello
-
해결됨
NestJS 통합테스트 후 데이터 처리
안녕하세요, 저는 Spring에서 Nest로 넘어온 네린이입니다.스프링에서는 통합테스트 작성시에도 데이터베이스에 데이터가 삽입되거나 업데이트 되지않도록 롤백시키는 방법이 존재하는데 Nest에서는 어떻게 해야하나요? 제가 생각하는 방법은 직접 쿼리러너를 통해 afterEach를 통해서 매번테스트후에 롤백을 시키는방법을 생각했습니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
강의자료 노션 링크 언제 보내주시는 걸까요?
어제 노션 링크 요청드렸었는데, 혹시 언제 받아볼 수 있나요?
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
VPC와 Security Group 관련해서 질문 있습니다
안녕하세요 강사님강의 너무 잘 듣고 있습니다 🙂 위의 로드밸런서 내 vpc 통신 관련 강의를 듣다가 vpc 내 통신에 관련해서 질문이 있어 문의글을 남깁니다1. Vpc가 달라도 인바운드 규칙에 security group을 추가하면 통신 가능한지?2. 같은 vpc 내에서는 security group 없이도 통신 가능한지?로드밸런서 같은 경우, 로드밸런서를 연결하는 인스턴스에 로드밸런서의 sg를 매핑시켜놓는 것을 확인했습니다근데 제가 같은 vpc 내에서 sg 인바운드 규칙 추가 없이 private ipv4로 curl 요청을 보냈을 때, curl이 정상적으로 통신이 가능해서 여쭤봅니다위의 2가지 내용이 궁금합니다
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
Error: Data too long for column
req.file을 보면 아래와 같이 나옵니다.{ fieldname: 'img', originalname: 'á\x84\x89á\x85³á\x84\x8Fá\x85³á\x84\x85á\x85µá\x86«á\x84\x89á\x85£á\x86º 2023-11-22 á\x84\x8Bá\x85©á\x84\x92á\x85® 8.36.00.png', encoding: '7bit', mimetype: 'image/png', size: 156946, bucket: 'whatsup1', key: 'original/1700700649389_á\x84\x89á\x85³á\x84\x8Fá\x85³á\x84\x85á\x85µá\x86«á\x84\x89á\x85£á\x86º 2023-11-22 á\x84\x8Bá\x85©á\x84\x92á\x85® 8.36.00.png', acl: 'private', contentType: 'application/octet-stream', contentDisposition: null, contentEncoding: null, storageClass: 'STANDARD', serverSideEncryption: null, metadata: undefined, location: 'https://whatsup1.s3.ap-northeast-2.amazonaws.com/original/1700700649389_%C3%A1%C2%84%C2%89%C3%A1%C2%85%C2%B3%C3%A1%C2%84%C2%8F%C3%A1%C2%85%C2%B3%C3%A1%C2%84%C2%85%C3%A1%C2%85%C2%B5%C3%A1%C2%86%C2%AB%C3%A1%C2%84%C2%89%C3%A1%C2%85%C2%A3%C3%A1%C2%86%C2%BA%202023-11-22%20%C3%A1%C2%84%C2%8B%C3%A1%C2%85%C2%A9%C3%A1%C2%84%C2%92%C3%A1%C2%85%C2%AE%208.36.00.png', etag: '"9afb9409e1bcd41269629b6bb1100245"', versionId: undefined}제로초님은 사진 파일 확장자가 jpg로 뜨는데 저는 png로 뜹니다..s3에 저장되는 쪽이 아니라 사진을 파일로 만드는 부분에서 문제가 있는 것 같은데 어느부분에서 손을 봐야할지 잘 모르겠습니다..const { S3Client } = require("@aws-sdk/client-s3"); const multerS3 = require("multer-s3"); const s3 = new S3Client({ credentials: { accessKeyId: process.env.S3_ACCESS_KEY_ID, secretAccessKey: process.env.S3_SECRET_ACCESS_KEY, }, region: "ap-northeast-2", }); const upload = multer({ storage: multerS3({ s3, bucket: "whatsup1", key(req, file, cb) { cb(null, `original/${Date.now()}_${file.originalname}`); }, }), limits: { fileSize: 5 * 1024 * 1024 }, });그리고 추가적인 질문이 있는데 localhost로 서버를 작동시킬때 db는 잘 보이는데 lightsail로 작동시킨 db가 보이지 않습니다..mysql connection 추가 버튼 눌러서 hostname을 aws에서 제공해준 ip로 바꾸면 되는거 아닌가요?그런데 그렇게 하고 연결을 하니깐 버퍼링이 걸리면서 연결이 되지 않습니다..
-
미해결
안드로이드 스튜디오 카카오로그인 구현 에뮬레이터 오류
안드로이드 스튜디오 에뮬레이터 실행 시, E/OpenGLRenderer( 4274): Unable to match the desired swap behavior. 라는 에러가 뜹니다.코드는 카카오 로그인 구현한 코드구요..대체 왜 오류가 뜨는지 궁금합니다import 'package:flutter/material.dart'; import 'package:kakao_flutter_sdk/kakao_flutter_sdk.dart'; import 'package:kakao_login/myhompage.dart'; void main() { KakaoSdk.init(nativeAppKey: 'e7a7bba0f8d93f336d1343d3f47222ae', ); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', routes: <String,WidgetBuilder>{ '/' : (BuildContext ctx) => const MyHomePage(), } ); } } import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; import 'login.dart'; class MainViewModel { final SocialLogin _socialLogin; bool isLogined = false; User? user; MainViewModel(this._socialLogin); Future login() async { isLogined = await _socialLogin.login(); if(isLogined) { user = await UserApi.instance.me(); } } Future logout() async { await _socialLogin.logout(); isLogined = false; user = null; } }import 'package:flutter/material.dart'; import 'login.dart'; import 'mainview.dart'; class MyHomePage extends StatefulWidget { const MyHomePage({Key? key}) : super(key: key); @override State<MyHomePage> createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { final viewModel = MainViewModel(KakaoLogin()); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('카카오 로그인'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Image.asset("assets/images/kakao_login_pic.png"), Text('${viewModel.isLogined}'), ElevatedButton( onPressed: () async { await viewModel.login(); setState((){}); }, child: const Text('Login') ), ElevatedButton( onPressed: () async { await viewModel.logout(); setState((){}); }, child: const Text('Logout') ) ], ), ), ); } }import 'package:kakao_flutter_sdk/kakao_flutter_sdk.dart'; abstract class SocialLogin { Future<bool> login(); Future<bool> logout(); } class KakaoLogin implements SocialLogin { @override Future<bool> login() async { try { //카카오톡이 설치되어있는지 확인 bool isInstalled = await isKakaoTalkInstalled(); if(isInstalled){ try{ //카카오톡으로 로그인 await UserApi.instance.loginWithKakaoTalk(); return true; } catch(error) { return false; } } else { try{ //카카오톡 계정으로 로그인 await UserApi.instance.loginWithKakaoAccount(); return true; } catch(error) { return false; } } } catch(error) { return false; } } @override Future<bool> logout() async { try { //카카오톡과의 연결을 끊는다. await UserApi.instance.unlink(); return true; } catch(error) { return false; } } }
-
해결됨독하게 시작하는 C 프로그래밍
continue문 질문입니다
#include <stdio.h>int main(void){ char ch; while (1) { ch = getchar(); if (ch == 'x') break; if (ch == 'q') continue; putchar(ch); } return 0;}이 예제에서 한 문자를 입력받을 때마다 while문이 실행되며 x인지 q인지를 검사하는 것으로 알고 있습니다. 만약에 aaaq를 입력하고 엔터를 누르지 않앗다면 q를 입력하는 순간 컨티뉴 문이 작동하여 putchar을 실행 시켜야 한다고 생각하는데 엔터를 눌러야만 작동하는 것이 이해가 안됩니다 ㅜㅜ 또한 getchar 함수는 한 글자씩 입력을 받는데 제가 if(ch == zxc) break;를 추가하고 zxc를 입력 후 엔터를 치면 브레이크 문이 작동 됩니다. 정리하자면 q나 x를 입력하는 순간에 브레이크나 컨티뉴 문이 작동 해야 하는게 아닌가요? 왜 엔터를 쳐야 작동하는지 모르겠습니다. 또한 getchar함수는 한글자만 입력받는 것으로 알고 있는데 왜 문자열로도 작동이 될까요?
-
미해결스프링부트 시큐리티 & JWT 강의
권한 처리 세션 사용
유익한 강의 감사드립니다.질문이 있습니다.권한처리를 위해 세션을 사용하게 되면서버가 여러대일 경우어떤 서버에는 권한정보가 있고어떤 서버에는 없을 수도 있지 않나요?이런 경우 스프링 시큐리티가 자동으로 알아서 처리를 해주는건가요?세션을 사용하지 않고 JWT 를 사용하는 이유중에 하나가서버가 여러대 일 경우의 세션 문제를 해결하기 위함도 있다고 하셨는데마찬가지로 서버가 여러대라면 권한처리를 위한 권한정보를 동일하게 맞춰(?) 주는 무엇인가가 필요하지 않나요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
컨트롤러 멀티레코드 vo 받기 문의드립니다
(사진)
-
해결됨머신러닝/딥러닝으로 이어지는 선형대수
그람슈미츠 프로세스 증명
그람슈미츠 프로세스 증명 시 u1 v1을 같다고 하고 시작하셨는데요. orthonamal vector는 크기가 1인데 기존의 벡터가 크기가 1이라는 보장이 없잖아요? 근데 어떻게 저런 가정이 갑자기 되는지 잘 모르겠습니다 ㅠ