묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결코알못에서 웹서비스 런칭까지 : 2021 제주 코딩 베이스캠프(Django)
javascript 자동완성 안됨
vscode에서 html은 자동완성이 되는데 javascript 자동완성이 안됩니다. 해결방법이 있나요?
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
인증서 재발급 이후에 nginx 프록시 서버 컨테이너를 따로 재시작할 필요는 없는건지 궁금합니다.
안녕하세요, 섹션 13 마지막 강의에서,인증서 재발급 이후에 nginx 프록시 서버 컨테이너를 따로 재시작할 필요는 없는건지 질문 드립니다.볼륨 마운팅이 되어 있기 때문에 nginx가 자동으로 갱신된 인증서를 읽어서 반영하는 건가요? 원리가 궁금합니다.만약 재시작이 필요한게 맞다면 crontab 명령어는 어떤식으로 변경하면 될까요?
-
미해결[React 2부] 고급 주제와 훅
[1.3.6 상태정의] state 관련
OrderPage/index.jsx 생성자(constructor)의 state 부문에서 this.state = {order: null,} 와 this.state = {}의 차이가 있나요?(this.state = {order: null,} 로 선언한 이유가 궁금합니다. )
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
언리얼엔진 물리 매터리얼 리빌드 문제
언리얼 엔진 5.3.2 버전 프로젝트 빈 것으로 생성시 랜드스케이프 물리 매터리얼을 리빌드해야한다고 아래 이미지처럼 화면에 빨간 글씨로 적히는데, 아예 새 프로젝트에서 생기는 에러다보니 어떻게 해결해야할지 모르겠어서 글 남겨요 .. 아래 세가지 시도를 해보았는데 해결이 안되었어요 ..Build > Build LandscapeBuild > Physical material onlyBuild > Build All Levels
-
미해결[DevOps 정석 2] MSA 환경의 로그 분석 기술 구축을 통한 통합로깅
open-telemetry config 예시 github 링크
안녕하세요. 다른 강의 들으시는 분들께 공유드리는 내용입니다. 저는 강의 내용에서 알려주신 config로 적용하면 기동이 되질 않더라고요helm 차트로 하지 않고 제가 docker 로 올려서 약간의 config 형식 차이가 발생했을 것 같습니다.수업중인 signoz와 제가 설치한 signoz의 버전 차이가 있으리라 생각합니다. 제가 참고한 open-telemetry config 예시 파일 공유드립니다. https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/spanprocessor/testdata/config.yaml spanprocessor 부분 링크이고, 다른 카테고리에서 다른 proceccor 형식도 참고할 수 있습니다. 감사합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Sleep_for질문입니다.
12:00부분에서 작성하신 예제들을 따라치며 CPU점유율을 확인을 해보니 sleep_for을 쓰면 10언저리로 나오는데 Producer에서 sleep_for만없이 실행을 하면 CPU점유율이 0~2사이로 나옵니다. 영상에서 설명을 들으면 Consumer에서 무한루프로 체크하는것 때매 CPU점유율을 먹는다 라고 했는데 그렇다면 sleep_for도 없이도 점유율이 10언저리로 안나오는 이유가 뭔가요? 혹시 sleep_for로 인해 수면상태가 되어 Consumer스레드로 컨텍스트스위칭이 발생하여서 그로인한 오버헤드때매 CPU점유율이 증가했다라고 이해하면 되는건가요?
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
MVVM 아키텍처 설명 1 (MVC부터 다시 설명) (업데이트-3강) 강의 질문있습니다.
MVVM패턴에 대해 공부하는 중 MVC 패턴에 헷갈리는 부분이 생겨서 질문드립니다.MVC패턴은 코드 수가 많아지면 컨트롤러가 비대해질 수 있어 유지보수가 힘들고 재사용이 힘들어 진다고 알고 있습니다.여기서 제가 궁금한 건 그렇다면 뷰와 컨트롤러의 코드를 따로 분류하여 MVC 패턴을 적용하려 할 때1. 뷰에서 이벤트 처리 함수를 작성해야하는 지2. 아니면 컨트롤러에서 이벤트 처리 함수를 작성해야하는 지어떤 방식을 통해 이벤트를 컨트롤해야 되나요?(물론 뷰에서 다룰 수 없는 부분은 컨트롤러에서 처리해야 하는 건 이해했습니다. 예를 들어 Segue의 Perform, Prepare같은 함수 작성 시)머릿속에서 자꾸 "사용자의 Action은 컨트롤러가 수행해야한다" 이 내용이 맴돌아서 뷰의 프로퍼티에 연결된 함수도 빼줘야하나? 하고 너무 헷갈립니다.
-
해결됨진짜! 자바스크립트(Javascript) - 기초부터 고급까지
메모리에 변수 생성과 값을 할당할 때
지금 변수와 값을 생성하는 부분을 보고있습니다. 그런데 메모리에 변수와 값들의 주소를 가지는 포인터 변수를 가진다고 하신 부분에서 궁금증이 생겼는데 그러면 메모리의 값들은 이미 메모리 셀에 기존부터 가지고 있는 건가요? 아니면 그때마다 임의로 값을 메모리에 생성하는 건가요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ping 모듈이 안됩니다...
윈도우에서 진행이 잘 안되는 것 같아 https://www.inflearn.com/questions/686434/ssh-copy-id-%EC%97%90%EB%9F%AC-%EB%AC%B8%EC%9D%98https://ploz.tistory.com/entry/9-windows-winrm%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-ansible-%EC%82%AC%EC%9A%A92곳 다 참고해서 진행중인데 제 윈도우 사용 계정이 한글명이라 그런건지 아래 오류가 납니다. 아무리 찾아봐도 모르겠네요.. 192.168.X.XX | UNREACHABLE! => { "changed": false, "msg": "ssl: 'latin-1' codec can't encode characters in position 0-2: ordinal not in range(256)", "unreachable": true}hosts 파일[ansible-server]localhost[windows]192.168.X.XX[windows:vars]ansible_password='~!qoa7848'ansible_connection=winrmansible_winrm_server_cert_validation=ignoreansible_user=박OO_인터넷망ansible_port=5986
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JUnit4 종속성을 추가했음에도 불구하고 테스트 진행 시 JUnit5로 실행됩니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]testImplementation 'org.springframework.boot:spring-boot-starter-test'testImplementation("org.junit.vintage:junit-vintage-engine") {exclude group: "org.hamcrest", module: "hamcrest-core"}강의 자료에서 나온 대로 JUnit4로 테스트 진행하기 위해서 위와 같이 종속성 추가했음에도 불구하고 테스트를 진행하면 JUnit5로 실행이 됩니다. 이유가 뭔가요??
-
미해결스프링 핵심 원리 - 고급편
질문은 아니고 후기는 강의를 다듣고 남길려고 하는데
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)영한님의 강의력에 정말 감탄이 나오는군요 한마리의 백조같은 유려하고 우아한 설명이에요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
dfs 질문
안녕하세요 선생님. 보통 dfs, bfs 문제를 풀때입력 받은 값들을 인접행렬로 저장해서 풀지 인접리스트로 저장해서 풀지 할때마다 고민이 되는데보통 코테에서는 어느 것이 더 효율적인가요?값들이 밀집되어 있을때는 인접행렬, 값들이 서로 다 떨어져듬성 듬성 있을땐(?) 인접리스트가 더 낫다고 배웠긴 한데 문제에서 이를 판단할땐 쉽지가 않습니다..
-
미해결ElasticSearch Essential
Compressed OOP 조건에 따른 ES Heap Size 제약
안녕하세요, 대용량 데이터 검색엔진 구축을 위해 Elasticsearch를 도입했습니다. 1. 개발환경 및 Spec 설명On-premise Kubernetes 환경에 Helm 배포를 통해 Master, Coordinating, Data Node 각각 4, 4, 10대로 Elasticsearch 클러스터를 구성했습니다.(HA 구성을 위해 Data Node는 모두 다른 Kubernetes Node에 배포되며, statefulSet을 통한 Rolling Update 방식입니다.)예상되는 클러스터 전체 Data Usage는 50TB 수준이고, primary shard와 replica shard의 개수는 각각 10과 1로 둘 예정입니다. 하나의 shard 용량은 10~20GB 수준으로 유지할 예정입니다. 현재는 초기 적재를 위해 replica shard 개수를 0으로 설정한 상황입니다.)pod container의 limit resource는 8core, 64Gi이며, ES_JAVA_OPTS 값으로는 -Xms30g -Xmx30g 옵션을 통해 Elasticsearch의 Heap Memory로는 30GB를 할당했습니다. 32Bit 포인터 관리 방식에서 object 그 자체가 아닌 object의 offset을 참조하는 Compressed OOP 사용을 위해, Elasticsearch의 Heap Size는 32GB를 권장하고 있습니다. 여기에 시작 주소를 0으로 두는 Zero-based 까지 고려하여 보수적으로 30GB를 사용했습니다.위와는 독립적인 권장 사항인 'JVM의 50%을 ES에 할당하라' 조건까지 고려하여 JVM Heapsize를 64Gi 로 두었습니다. 2. issue데이터 색인(bulk가 아닌 일반적인 PUT API) 중, kibana를 비롯하여 Elasticsearch 클러스터 전체에 503 에러가 발생했고 쿠버네티스 클러스터에 배포된 pod(Master, Coordinating Node 전부, 그리고 Data Node는 2대를 제외한 나머지 8개)가 restart 없이 죽었습니다. (원인은 CircuitBreaker입니다.)NAME READY STATUS RESTARTS AGE edms-p01-srep01-coordinating-0 0/1 Running 0 37h edms-p01-srep01-coordinating-1 0/1 Running 0 37h edms-p01-srep01-coordinating-2 0/1 Running 0 37h edms-p01-srep01-coordinating-3 0/1 Running 0 37h edms-p01-srep01-data-0 0/1 Running 0 37h edms-p01-srep01-data-1 0/1 Running 0 37h edms-p01-srep01-data-2 1/1 Running 0 37h edms-p01-srep01-data-3 0/1 Running 0 37h edms-p01-srep01-data-4 0/1 Running 0 37h edms-p01-srep01-data-5 0/1 Running 0 37h edms-p01-srep01-data-6 1/1 Running 0 37h edms-p01-srep01-data-7 0/1 Running 0 37h edms-p01-srep01-data-8 0/1 Running 0 26h edms-p01-srep01-data-9 0/1 Running 0 37h edms-p01-srep01-es-exporter-8457b87fb7-wsshd 1/1 Running 0 39h edms-p01-srep01-kb-84dcb6d7f7-gdhd9 0/1 Running 0 39h edms-p01-srep01-master-0 0/1 Running 0 37h edms-p01-srep01-master-1 0/1 Running 0 37h edms-p01-srep01-master-2 0/1 Running 0 37h edms-p01-srep01-master-3 0/1 Running 0 37h Data Node의 경우 빈번한 Young GC, 그리고 Old GC가 발생했지만 점차 확보하는 Memory 양이 적어지다가 CircuitBreakingException이 발생했습니다.Master와 Coordinating Node는 Old GC 없이 Young GC만으로 heap size가 잘 관리되다가 모든 Data Node 메모리 부하가 심해지니 Pod가 죽었는데, 유추하기로는 처리되지 못한 색인 데이터의 transport가 loop 되다가 Master/Coordinating 메모리에도 영향을 준 것으로 보입니다. CircuitBreakingException이 발생 전의 한 Data Node의 stats은 아래와 같습니다. (GET _nodes/stats) "mem" : { "heap_used_in_bytes" : 28558120848, "heap_used_percent" : 88, "heap_committed_in_bytes" : 32212254720, "heap_max_in_bytes" : 32212254720, "non_heap_used_in_bytes" : 191720344, "non_heap_committed_in_bytes" : 201515008, "pools" : { "young" : { "used_in_bytes" : 771751936, "max_in_bytes" : 0, "peak_used_in_bytes" : 19243466752, "peak_max_in_bytes" : 0 }, "old" : { "used_in_bytes" : 27784679400, "max_in_bytes" : 32212254720, "peak_used_in_bytes" : 32129130920, "peak_max_in_bytes" : 32212254720 }, "survivor" : { "used_in_bytes" : 1689512, "max_in_bytes" : 0, "peak_used_in_bytes" : 1520169584, "peak_max_in_bytes" : 0 } } }, ... "gc" : { "collectors" : { "young" : { "collection_count" : 226, "collection_time_in_millis" : 15603 }, "old" : { "collection_count" : 1, "collection_time_in_millis" : 6322 } } } 3. 의문점Data node 역할을 담당하는 pod가 죽은 것은 그럴 수 있다 쳐도 색인과 관련 없는 Coordinating/Master Node 역할의 pod에까지 영향을 미치는 이유는 무엇인가요?(위의 pod metric을 살펴보아도 OOM과는 전혀 거리가 멀어보이긴 합니다만) Elasticsearch가 분산시스템이지만 위와 같이 Kubernetes 노드에 문제가 없는 상태에서 pod만 죽어버리니 고가용성이 무색해지는군요... 앞서 말씀드린 것처럼 색인 데이터의 transport 내부 동작이 영향을 미쳤을까요?위와 같은 CircuitBreakingException에 대응하는 방법에는 ES_JAVA_OPT의 Heap Memory 용량을 증설하거나, 클러스터 세팅 indices.breaker.total.limit 값은 이미 95%입니다. (indices.breaker.total.use_real_memory가 true 이므로) 이때, 이미 Heap이 30GB라면, Compressed OOP의 조건인 32GB를 넘는 수준의 ES_JAVA_OPTS 설정을 시도하려면 어느 정도로 높게 하는게 좋을지 고견을 여쭙습니다.(Container의 jvm memory 자체에는 큰 제약이 없는 개발환경입니다. 즉, 128GB, 256GB처럼 높은 수준의 resources.limit 설정도 가능합니다.)
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
저장되는 파일이 UTF-16 LE로 인코딩됩니다
문제 및 조건Name변수에는 "이득우"문자열을 저장했습니다Json으로 저장된 파일을 열어보면 UTF-16 LE로 인코딩돼있습니다..txt로 파일을 저장하고 메모장으로 열어도 UTF-16 LE로 인코딩 돼있습니다..cpp파일들은 전부 UTF-8로 확실하게 저장했습니다.코드는 Json으로 읽고 쓰기 부분만 첨부드렸지만 바이너리로 저장한 파일도 불러오면 한글만 깨져있습니다.운영체제는 윈도우11, 언리얼 에디터는 5.3.1버전입니다. LogTemp 첨부LogTemp: 저장할 파일 폴더: ../../../../../../UE5_Inflearn/Part1/UnrealSerialization/Saved LogTemp: 저장할 파일전체 경로: ../../../../../../UE5_Inflearn/Part1/UnrealSerialization/Saved/RawData.bin LogTemp: 변경할 파일전체 경로: E:/UE5_Inflearn/Part1/UnrealSerialization/Saved/RawData.bin LogTemp: [RawData] 이름 이득우 순번 16 LogTemp: [ObjectData] 이름 ↓ンᄡ→モン↓レᄚ 순번 59 LogTemp: [JsonData] 이름 ↓ンᄡ→モン↓レᄚ 순번 59작성한 코드의 Json 읽고 쓰기 부분은 이렇습니다.// Json으로 읽고 쓰기 { FString JsonDataFileName(TEXT("StudentJsonData.json")); FString JsonDataAbsolutePath = FPaths::Combine(*SavedDir, *JsonDataFileName); FPaths::MakeStandardFilename(JsonDataAbsolutePath); // "JsonObjectConverter.h" include 필요 //!중요 [프로젝트 명].build.cs파일에 Json관련 모듈 2개를 추가해줘야함 // 공유 레퍼런스 - Null이 아님을 보장함 TSharedRef<FJsonObject> JsonObjectSrc = MakeShared<FJsonObject>(); // 이렇게하면 StudentSrc 오브젝트의 값이 Json으로 변환이 됨 FJsonObjectConverter::UStructToJsonObject(StudentSrc->GetClass(), StudentSrc, JsonObjectSrc); // 파일로 디스크에 저장 FString JsonOutString; TSharedRef<TJsonWriter<TCHAR>> JsonWriterAr = TJsonWriterFactory<TCHAR>::Create(&JsonOutString); if (FJsonSerializer::Serialize(JsonObjectSrc, JsonWriterAr)) { FFileHelper::SaveStringToFile(JsonOutString, *JsonDataAbsolutePath); } FString JsonInString; FFileHelper::LoadFileToString(JsonInString, *JsonDataAbsolutePath); TSharedRef<TJsonReader<TCHAR>> JsonReaderAr = TJsonReaderFactory<TCHAR>::Create(JsonInString); // 파일에 문제가 있으면 Json이 안만들어질 수 있으므로 Null을 허용하는 TsharedPtr사용 TSharedPtr<FJsonObject> JsonObjectDest; if (FJsonSerializer::Deserialize(JsonReaderAr, JsonObjectDest)) { UStudent* JsonStudentDest = NewObject<UStudent>(); if (FJsonObjectConverter::JsonObjectToUStruct(JsonObjectDest.ToSharedRef(), JsonStudentDest->GetClass(), JsonStudentDest)) { PrintStudentInfo(JsonStudentDest, TEXT("JsonData")); } } } 이 문제가 언리얼 에디터 버전때문일까요?아님 제가 코드를 잘못 작성한걸까요?테스트를 좀 해보니 최종 파일의 인코딩은 상관 없었습니다.FFileHelper::SaveStringToFile(JsonOutString, *JsonDataAbsolutePath, FFileHelper::EEncodingOptions::ForceUTF8WithoutBOM);이렇게 강제로 UTF8로 인코딩해도 똑같더라고요그래서 Json을 Serialize할 때 파일 저장 직전 Serialize된 문자열 로그를 찍어봤습니다.TSharedRef<TJsonWriter<TCHAR>> JsonWriterAr = TJsonWriterFactory<TCHAR>::Create(&JsonOutString); if (FJsonSerializer::Serialize(JsonObjectSrc, JsonWriterAr)) { UE_LOG(LogTemp, Log, TEXT("JsonOut: %s"), *JsonOutString); // 이 부분 FFileHelper::SaveStringToFile(JsonOutString, *JsonDataAbsolutePath, FFileHelper::EEncodingOptions::ForceUTF8WithoutBOM); }저기서부터 이미 한글Name이 깨져있네요 아래처럼 출력됐습니다.[2024.03.12-06.33.03:029][ 12]LogTemp: JsonOut: { "order": 59, "name": "↓ンᄡ→モン↓レᄚ" } 일단 더 찾아보겠습니다
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
다음 nest강의는 prisma는 사용안하실까요?
현업에서 typeorm 만큼이나 prisma를 많이 사용한다고 하는데 이쪽은 자료때문에 공부하기가 좀 힘들어서요
-
미해결Flutter 초입문 왕초보편
현업에서 로컬 DB 활용시 Hive 사용했을때 구현 패턴 문의
main 상단에 Box<ToDO> 로 묶어 전역으로 사용했는데요, 강의 내 말씀하신대로 ... 토이프로젝트가 아닌이상 뭐 좋은방법은 아닐 것 같습니다. 실제로 구현패턴은 어떻게 현업에서 사용하는지 궁금합니다.간단하게 링크를 주셔도 될 것 같습니다. Repository 같은거로 만들어서 넣고빼고 하는걸 메서드 만들어두는 패턴이 있다면 샘플이 궁금합니다.
-
미해결
스프링 시큐리티 OAuth2 설정에 관한 질문입니다.
안녕하세요, 스프링 시큐리티에서 OAuth2 방식으로 로그인 하는도중 질문 드릴것이 있습니다. security: oauth2: client: registration: okta: client-id: "클라이언트 ID" client-secret: "클라이언트 시크릿" redirect-uri: http://localhost:8080/oauth2/okta/sign-in scope: - profile - email - openid provider: okta: issuer-uri: "테스트URI"먼저 yml파일에서 위와같이 설정해 놓았으며, okta내의 리다이렉트 URI도 동일하게 설정해두었습니다.그런데 예전에 진행했던 구글 로그인에서는 인증이 성공하면 code를 가져와서 AccessToken을 자동으로 발급받고, 사용자 정보까지 스프링 시큐리티가 알아서 가져온 이후, CustomOAuthSuccessHandler에서 처리했던것으로 기억합니다.그 당시에는 리다이렉트 URI가 http://localhost:8080/oauth2/code/google와같은 형식이었어서 시큐리티에서 감지하고 자동으로 엑세스토큰까지 가져온걸까요?현재는 Okta 인증이후 http://localhost:8080/oauth2/okta/sign-in 로 code를 파라미터로 가지고 도착하여, 컨트롤러에서 okta인증서버에 수동으로 엑세스토큰을 받아오고 있습니다. 이로인해 CustomOAuthSuccessHandler도 사용하지 못하고 있는 상황이고, SecurityContext를 불러와서 수동으로 로그인처리를 완료하고 있습니다. 물론 기능상에 문제는 없어보이지만.. 어떻게 봐도 코드가 깔끔하지 못하고, 시큐리티를 잘못 사용하고 있는것같아, 여러 문서들을 참고해 보았지만.. 짧은 지식으로는 완벽히 이해하기 힘들어 난항을 겪고있습니다. 꼭 시큐리티에서 default로 설정해둔 uri 형식을 맞춰야 실행되는걸까요?그렇지 않다면 사용하고 싶은 uri로 설정하기 위해서는 어떤 방법이 있을까요?키워드라도 공유해 주신다면 열심히 찾아서 적용해보겠습니다.감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
강의 내 커리큘럼 엑셀로 받아볼 수 있나요
복습용으로 강의 내 커리큘럼 리스트를 받아보려고 하는데 일일이 수작업으로 하려고 하니 좀 번거로워서 문의드립니다. 혹시 커리큘럼을 export 할 수 있는 기능이 있나요?
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
ec2 에 배포 자동화시 참고 코드 올려 봐여
ec2 에 배포할 경우 아래처럼 deploy.ytml 수정 하면 pm2 프로세스 종료 후 서버 시작까지 잘되요 여기에 뭔가 좀 빼고 더하는 개선이 필요할것 같은데 일단 기본적인 배포 액션은 잘 동작 합니다. deploy.ymlname: deploy on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout the code uses: actions/checkout@v1 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: "18.x" - name: Create SSH directory run: mkdir -p ~/.ssh - name: Install pm2 run: sudo npm install -g pm2 - name: SSH Commands uses: appleboy/ssh-action@v0.1.6 with: host: ${{ secrets.AWS_SSH_HOST }} username: ${{ secrets.AWS_SSH_USERNAME }} key: ${{ secrets.AWS_SSH_KEY }} port: ${{ secrets.AWS_SSH_PORT }} script_stop: true script: | # sudo apt-get update || exit 1 cd express-redis-server/ sudo pm2 delete all || true sudo git pull || exit 1 sudo npm install || exit 1 sudo npm run build || exit 1 sudo pm2 start npm -- start
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
강의 연장 문의
안녕하세요 강사님. 저는 작년에 해당 강의를 수료했습니다.세심하고 자세한 좋은 강의덕분에 많이 배울 수 있었습니다.피그마 업데이트로 강사님께서 새롭게 영상을 업로드 해주신 소식을 확인하였습니다.새로운 업데이트로 인해서 한번 더 강의를 복습하고자 하는데, 강의기간이 얼마 남지 않아 1달정도 연장이 가능한지 문의드립니다.