7달 전 · 익명 님의 질문
리액트 네이티브 릴리즈로 배포 시 build.gradle 설정대로 동작 안하는 이유가 뭔지 궁긍합니다.
안녕하세요. 현재 리액트 네이티브로 프로젝트를 진행하고 있습니다. 막바지 단계에 거의 도달해서 이제 배포 준비를 하려고 하는데요, 마지막으로 테스트를 하기 위해 stagingRelease 로 apk 를 만들어서 테스트를 하려고 하니, .env.staging 을 읽지를 못하고 있네요. 이상한건 stagingDebug 로 할 때에는 이런 문제가 없었습니다. 지금 환경변수는 루트 디렉토리에 env 폴더가 있고, 해당 폴더 내에는 3개의 환경변수 파일이 존재합니다. .env.development .env.staging .env.production 이렇게 3개 입니다. project.ext.envConfigFiles = [ productiondebug: "env/.env.production", productionrelease: "env/.env.production", developmentrelease: "env/.env.development", developmentdebug: "env/.env.development", stagingrelease: "env/.env.staging", stagingdebug: "env/.env.staging" ] 위의 코드는 제가 설정한 환경변수 매핑하는 부분입니다. 실제로 stagingrelease 로 빌드 시에 flavor 값이 stagingrelease 로 뜨는 걸 확인했습니다. node_modules 에서 react-native-config 폴더를 찾아서 dotenv.gradle 에서 찍으니까 확인이 가능하더라고요. 제가 궁금한 점은 왜 루트에서 .env 파일만을 읽어서 BuildConfig.java 에서 사용하려고 하는걸까요? .env.staging 을 참조하지 않는 이유가 궁금합니다. 아래는 dotenv.gradle 파일입니다. import java.util.regex.Matcher import java.util.regex.Pattern def getCurrentFlavor() { Gradle gradle = getGradle() def pattern = Pattern.compile("(?:.*:)*[a-z]+([A-Z][A-Za-z0-9]+)") def flavor = "" gradle.getStartParameter().getTaskNames().any { name -> Matcher matcher = pattern.matcher(name) if (matcher.find()) { flavor = matcher.group(1).toLowerCase() return true } } println "Current flavor: $flavor" return flavor } def loadDotEnv(flavor = getCurrentFlavor()) { def envFile = project.hasProperty("defaultEnvFile") ? project.defaultEnvFile : ".env" if (System.env['ENVFILE']) { envFile = System.env['ENVFILE'] } else if (System.getProperty('ENVFILE')) { envFile = System.getProperty('ENVFILE') } else if (project.hasProperty("envConfigFiles")) { project.ext.envConfigFiles.any { pair -> if (flavor.startsWith(pair.key.toLowerCase())) { envFile = pair.value return true } } } println "Reading env from: $envFile" def env = [:] File f = new File("$project.rootDir/../$envFile"); if (!f.exists()) { f = new File("$envFile"); } if (f.exists()) { println "Found env file: $f" f.eachLine { line -> def matcher = (line =~ /^\s*(?:export\s+|)([\w\d\.\-_]+)\s*=\s*['"]?(.*?)?['"]?\s*$/) if (matcher.getCount() == 1 && matcher[0].size() == 3) { env.put(matcher[0][1], matcher[0][2].replace('"', '\\"')) // 각 환경 변수 키-값 쌍 출력 println "Loaded env variable: ${matcher[0][1]} = ${matcher[0][2]}" } } } else { println("**************************") println("*** Missing .env file ****") println("**************************") } project.ext.set("env", env) } loadDotEnv() android { defaultConfig { project.env.each { k, v -> def escaped = v.replaceAll("%","\\\\u0025") buildConfigField "String", k, "\"$v\"" resValue "string", k, "\"$escaped\"" println "Set buildConfigField and resValue: $k = $v" } } } 안드로이드 스튜디오 터미널에서 ./gradlew assembleStagingRelease 명령어를 치게 될 경우, Current flavor: stagingrelease Reading env from: .env.staging ************************** *** Missing .env file **** ************************** 이런 로그가 뜨고 있습니다.
개발자
#react-native
#react-native-config
#다중환경변수
#release
답변 0
댓글 0
조회 57
7달 전 · 성지수 님의 새로운 답변
환경변수 주입 및 빌드(모노레포)
모노레포 프로젝트 환경 및 요구사항 - 프로젝트는 front(React), back(Node), common 패키지로 구성되어 있으며, 모노레포로 되어있음 - Dockerfile 스크립트에서는 build → run 순서로 실행되도록 구현되어 있음 - 서버 배포 시에는 하나의 포트만 사용해야 하므로 back(Node)에서 front의 정적 파일(index.html)을 실행해야 함 - Docker 빌드 시, front(webpack 빌드)와 back 둘 다 build 스크립트를 실행하고, 이미지 실행 시에는 back만 run 스크립트를 실행하여 back에서 front의 정적 파일을 실행해야 함 - 환경변수는 이미지 실행 시 docker-compose.yml의 env_file 속성을 사용해 외부에서 주입해야 함(환경변수가 바뀌는 상황이 있다면 .env 파일을 수정한 후 다시 빌드해야 합니다.) 예외 상황 Docker 빌드할 때 .env 파일을 포함하지 않고 run 스크립트를 실행(이미지 실행) 시 주입하는데, front 패키지에는 run 스크립트가 존재하지 않습니다. (back에서 front의 정적 파일을 실행) 즉, 환경변수가 주입되지 않고 있음 해결 방법 첫번째는 back에서 front의 dist 파일 호출 시 환경변수 객체를 만들어 value 값을 key 값으로 치환해서 함께 넘기고, index.html의 head에서 window 객체를 활용해 값을 받는 방법 하지만 이 방법은 개발자 도구에서 환경변수 값이 노출되고, window 객체를 활용하기 때문에 새로운 브라우저를 생성할 때마다 사이드 이펙트가 발생할 수 있음 두번째는 모노레포 root 패키지에서 prerun 스크립트로 front의 build 스크립트를 실행하는 방법 스크립트 -> "prerun": "lerna run build --parallel --scope @projectname/front --stream", 이 방법은 빌드를 두 번 실행하므로 자원을 많이 소모하지만, 예외 상황이 없는 것으로 보임 질문 받은 내용 Q. 환경변수를 바꾸는 상황이 존재할까요? A. 회사의 인프라 환경에 따라 다르지만, 포트나 IP가 변경될 수 있는 상황이 있음 예를 들어, 외부 서버에 요청을 보낼 경우 그 서버의 정보가 바뀌면 설정을 변경해야 하며, 다른 서버에 요청할 때 인증 정보를 입력해야 하는데, 토큰이나 사용자 패스워드 값이 변경될 경우에도 수정이 필요함 고민되는 부분 다른 해결 방법이나 비슷한 상황이 있다면 함께 논의하고 싶습니다. ㅎㅎ *프로젝트 구조 root ├── packages │ ├── back │ │ ├── package.json │ │ ├── index.ts │ │ ├── .babelrc │ │ └── ... │ ├── common │ ├── front │ │ ├── public │ │ │ └── index.html │ │ ├── package.json │ │ ├── src │ │ │ └── index.js │ │ ├── src │ │ ├── webpack.config.js │ │ └── ... ├── package.json ├── lerna.json ├── docker-compose.yml ├── Dockerfile * 프로젝트의 중요 정보는 제외했습니다.
개발자
#환경변수주입
#모노레포
#빌드
#node.js
#react
답변 1
댓글 0
조회 75
7달 전 · 강지원 님의 질문 업데이트
프론트엔드 - Docker-Compose 문제
docker-compose를 세팅 중 빌드 오류가 있어 질문 드립니다. 문제의 원인이 prod 환경의 compose.yml라고 예상되어지는데 dev 환경의 compose에서는 env 파일을 정상 인식하지만 prod 환경의 compose에서는 env 파일을 인식하지 못하는 문제인데요. docker-compose 명령어를 실행할 때, .env 파일이 있는 경로에서 실행을 하고있고 docker-compose.prod.yml과 .env 파일에 정의된 변수 이름도 오탈자는 없습니다. 어떻게 해야 docker build시, prod에서는 args를 사용할 때 production.env(= multiple .env)파일을 인식하게 할 수 있을까요? 혹시 제가 놓치고 있는 부분이 있을까요? 추가로, 관련된 코드와 설정은 Stack Overflow에 업로드를 해뒀는데요, 답변 주시면 정말 감사하겠습니다! https://stackoverflow.com/questions/78857841/docker-compose-not-recognizing-environment-variables-in-next-js-application-pro
개발자
#docker
#docker-compose
#도커
#에러
#프론트엔드
답변 1
댓글 0
조회 67
7달 전 · 익명 님의 질문
micro repo 세팅하면서 격은 문제(같은 문제 격는 분들 댁글)
이번 프로젝트에서 하나의 레포지토리에서 client, server, admin, common 4가지 패키지를 만들었습니다. client, server, admin은 common을 의존하도록 모노레포로 만들었고, client는 admin을 의존할 수 있게 micro로 만들었습니다. 간단한 패키지 설명: - client: 메뉴 헤더 등 구현, 페이지는 admin을 remote 해서 사용, React로 구현 - admin: 페이지에 나오는 콘텐츠의 전반적인 부분이 컴포넌트로 되어있음, React로 구현 - server: Node.js로 되어있고 실제 Spring 서버에서 준 데이터를 포맷하는 형태 - common: 공통 컴포넌트, 라벨 등 문제1: 다른 프로젝트에서 expose 되어있는 Next.js 프로젝트(scss로 스타일 구현)를 client에서 사용할 때 의존성 관련 오류가 생깁니다. client의 package.json에서 peerDependencies로 next를 설정해줘야 하는지, 양쪽 패키지(다른 프로젝트와 client)에서 Next.js와 React를 share 설정을 해야 되는지 잘 모르겠습니다. 여러 방법으로 시도는 해봤지만 의존성 오류나 Next.js에서 훅을 사용 못하는 오류 때문에 해결하지 못하고 있습니다. 문제2: 빌드 최적화를 위해 트리쉐이킹이나 코드 스플리팅을 해야 합니다. 웹팩에서 아래와 같이 코드 스플리팅을 하면 청크 파일 이름이 겹치기 때문에 filename을 해시값으로 설정해야 합니다. 여기서 문제가 생기는데, micro의 client처럼 remote 하는 부분에서 remote.js, app.js 청크가 필요하기 때문에 이름이 해시값으로 바뀌면 해당 청크를 찾을 수 없습니다. 또한 ModuleFederationPlugin이 빌드 시 자동으로 코드 스플리팅을 해준다는 이야기도 있는데, 이 부분은 정확하지 않습니다. 저와 같은 문제를 격고 있거나 해결하신 분들 같이 나눴으면 합니다.
개발자
#micro
#react
#monorepo
#nextjs
#build
답변 0
댓글 0
조회 26
8달 전 · 프레드윰 님의 새로운 답변
Ios 앱 개발 빌드 기기 질문!
안녕하세요 flutter 주니어 개발자입니다. 회사에서 ios 앱 개발 하라는데 아이폰을 안사줘서 직접 중고로 구매하려합니다.. 아이폰se2가 가격이나 출시가 적당해보이는데 해당 기기로 빌즈 하시는 분이나 다른 기기로 빌드하시는분 계실까요? 어떤 기기가 미니멈 사양인지 알고싶어요!
개발자
#flutter
답변 1
댓글 0
조회 40
8달 전 · Ted 님의 답변 업데이트
신입 개발자 기술 스택 수준
안녕하세요. 웹 개발 쪽으로 입사한 지 1년 정도 되어가는 신입 개발자입니다. 이전에 "IT 신입 포지션 변경"이라는 질문 글을 쓰고, 많은 관심 가져주셨었는데 그 이후가 현재 상태입니다 ㅎㅎ 약 1년 정도 회사를 다니면서 요즘 궁금한 점이.. 제가 하고 있는, 또는 했었던 것들이 신입 개발자에게 요구되는 당연한 것들인지가 궁금해서 질문드립니다. 먼저, 저희 회사는 중소 기업치고는 사원수가 꽤 있는 편에 속합니다. (2~300전후) 저는 백엔드 공부 후에 어쩌다 보니 프론드 개발자로 입사했고, 추후 백엔드도 같이 맡게 될 거라 듣고 들어왔습니다. 먼저 제가 와서 사용한 기술 스택입니다. (git, postman 등과 같은 툴 또는 라이브러리는 제외) React, Next, Vite, TypeScript, Keycloak, Nginx, Docker, Jenkins, MySQL, MongoDB, Spring, JSP.. 일단.. 생각나는 건 이 정도이고, 막상 적고 보니 많은 걸 했네요.. 지식의 깊이는 물론 신입 입장이기에 깊지는 않지만, 해당 기술들을 사용하고 활용하는 부분에 있어서는 문제 될 정도는 아닌 것 같습니다. 프론트 쪽은 소규모부터 대형 프로젝트(진행 중)까지 거의 혼자? 진행을 했고..(현재 프로젝트의 서버는 시니어분이 하고 계심) 지금도 하고 있습니다. 서버 쪽은 혼자 직접 파이프라인 설계 및 빌드, 배포까지 해봤고 서버에 도커 올리는 것까지도 다 해본 것 같습니다. (물론 정말 힘들었지만 동작은 잘 됨.. 왜 되는지는 그때나 지금이나 저도 모름) 같은 개발자 친구들은 저보고 많이 하는 편이라고는 하는데, 같은 신입이라 정확히 얼마나 많이 하는 건지 감이 잘 안 옵니다. (그냥 하라면 해야지라는 마인드라..) 시니어 분도 조금씩 시키시다가 잘 해내서 점점 업무를 많이 주시는 건 알고 있는데, 현직 자분들의 생각이 궁금합니다.
개발자
#기술스택
#신입
#웹개발
답변 3
댓글 0
조회 1,586
9달 전 · 김지훈 님의 새로운 댓글
라이브러리 구조 설계
안녕하세요. 현재 경력2년차 C# 언어 사용중입니다. 개발환경은 VS2019, .net Framework4.7.2 입니다. 코드의 재사용성을 높이고자 라이브러리 구조를 새로 설계하고있습니다. 사진처럼 각 솔루션을 생성하였고 그것을 기준으로 git 관리를 진행하고있습니다. 각 프로젝트는 C# 클래스 라이브러리입니다. 가장 기본이되는 common 내부에 c++ dll 이 존재하기 때문에 다른 솔루션들에서 사용시 기존프로젝트를 불러온 후 참조를 진행하고있습니다. 이 방식은 MyReleaseProject를 빌드할 경우 자동으로 c++ dll도 복사가 된다는 장점이 존재합니다. 하지만 직접 참조를 진행해야하는 프로젝트들이 점점 많아지는 단점이 존재합니다. 선배 개발자님들께서는 이럴때 어떤식으로 설계를 진행하시는지 궁금합니다.
개발자
#c#
#library
답변 1
댓글 1
추천해요 2
조회 60
9달 전 · 김하늘 님의 새로운 답변
현상황 능력업시킬수있는 방법 고민좀 들어주세요
1년반된 프론트엔드 개발자입니다 간단한api작성정도는 했구 현재 회사서비스 프로트엔드개발은 혼자서 다하구있구요 Vue.js로 개발중입니다 전 비전공자구 애초에 뼈속까지 문과라 학원에서부터 따라가는게 조금 힘들었는데요 그땐 코드도 아예 짤줄모르고 내가멀하고있는지도몰랐어요 그래도 나름의 노력끝에 이젠 코드도 이해하면서 짜고 개발할때 시간가는줄모르고 재밌고 성취감도 느껴지고 하는데 먼가 코더에서 머물러있는 느낌이고 정확히 빌드가 멀하는건지 객체지향이먼지 로컬서버,데브서버,메인서버 왜 나누는건지, 먼가 큰구조들같은것도 그렇고 모르는게 투성인데 지금시점에 한단계발전할수있도록 공부가필요할거같은데 어떤걸공부하면좋을지 조언부탁드려요 그리고추가로 코테와 정처기준비도 하는게 좋을지 궁금합니다
개발자
#자기계발
#비전공자
#정체기
#공부방법
#공부방향
답변 1
댓글 0
조회 70
10달 전 · 삭제된 사용자 님의 새로운 답변
AI 진로를 어떻게 나아가야 할까요?
현재 27살 전문대 컴퓨터공학(3년제 2학년) 재학중인 학생입니다. AI분야를 진로로 희망하고 있는데 제가 해당 분야에 관한 지식이나 현재 취업 트렌드에 대해 밝지 않아 조언을 얻고자 이렇게 글을 쓰게 되었습니다. 1. 대학원 빌드업 취업공고를 보다보면 결국 AI핵심 분야는 석/박사가 요구되는 것이 현실이고 그리고 개인적으로도 전문적인 지식을 기르고 싶어 취업 후 대학원을 생각하고 있습니다. 여기서 문제는 학사 학위인데요 지금 전문대를 졸업하고 나면 전문학사로 졸업하게 될텐데 학점은행제 학사 출신은 괜찮은 대학원에 들어가기 어려움이 좀 있다고 들어서 우선 취직을 한 뒤 4년제를 들어갈 생각입니다. 1) 취직 후 야간대학 2) 취직 후 돈 모아서 주간대학 처음에는 야간대학을 고려하고 있었는데 요새 야간대학이 많이 줄고 있다고 들었고 야간대학에 컴퓨터 공학과가 없을 수 있다고 들었습니다. 그래서 취직 후 돈을 모으고 회사를 나와서 그냥 주간대학에 들어가서 학사를 따는 게 나을지 궁금합니다. 2. 필요한 공부 취업을 중요시 하는 전문대학교 커리큘럼과 교육방식은 아무래도 탄탄한 전공 지식을 위한 교육 보다는 전공 지식은 얕게 주로 당장의 실무 능력을 키우는것에 초점이 맞춰져 있습니다. 그래서 다른 학교의 강의계획서나 커리큘럼을 참고해 도서관에서 괜찮은 전공서를 빌려서 몇일 전 부터 공부를 하고 있습니다. 차후에 원서도 고려하고 있습니다.(영어 실력은 좋지 않지만 번역기에 ai 도입 되고 번역 퀄리티가 정말 좋아서 가능할 거 같습니다.) 그런데 혼자서 준비하다 보니 맞는 방향성을 갖고 공부를 하는건가?하는 불안감이 있어 이 부분에 있어 조언을 구하고자 합니다. 1) 개발 어떤 언어와 라이브러리 등을 공부하는 게 좋을지 2) 전공지식 어떤 전공 과목들을 공부하는 게 좋을지 혹시 책도 추천 해주신다면 감사하겠습니다.
개발자
#인공지능
#ai
#ai개발
#python
#데이터-분석
#취업
#대학교
#대학생
답변 2
댓글 2
조회 444
일 년 전 · 포크코딩 님의 새로운 답변
Next dev server가 자꾸 chunks error로 터집니다
안녕하세요. Next에서 npm run dev로 실행시키고 작업물을 저장하다보면 몇번 수정을 안했는데도 다음과 같은 에러창으로 인해 서버가 터집니다. ㅠㅠㅠ 저장 혹은 새로고침을 하면 웹에 Internal server error 뜨고 터미널에는 사진과 같은 에러들이 나열됩니다. .next에 있는 작업하고 있는 해당 페이지 폴더 경로들만 뜨며 몇일째 비슷한 문제를 겪으신 분들의 방법을 따라했는데 해결이 안되고 있습니다 ㅠ 챗 지피티가 알려준 방법도 안되더라고요 ㅠㅠ 도와주세요 시도한 방법 : 1. node, npm관련 캐시파일 모두 삭제 후 최신lts버전업그레이드 2. next 폴더 삭제 후 다시 빌드 3. 드라이브 공간확보 4. 폴더 읽기전용 권한 변경 ( next 다시 빌드하니까 초기화 ...) 5. 자동 빌드 (auto save) 확장팩 깔기 아래에 에러 캡쳐사진과 현재 package 첨부합니다..
개발자
#next.js
#front-end
#frontend
#server
답변 1
댓글 0
보충이 필요해요 1
조회 93
일 년 전 · 김민식 님의 새로운 답변
부트캠프 vs 중견 인턴
안녕하세요. 최근 부트캠프와 인턴을 둘 다 붙은 기회가 생겨 전문가님들의 자문을 구하고자 글을 올려봅니다. 저는 백엔드 개발자를 희망하고 있고 타 분야에서 약 1년 반의 경력이 있는 중고 신입입니다. (IT계열이긴한데 분야가 다릅니다.) 동아리 등을 통해서 프로젝트 경험은 있는데 현직 경험이 없다보니 인턴을 구했는데 정확히 백엔드 개발의 직무가 아니고 사내 자체 서비스를 AtoZ로 빌드하고 구축/개발하는 인턴직입니다. 웹 기반이긴한데 어떤 툴을 쓸건지도 아직 정하지 않은 것 같았고, 사내에 전문 인력이 크게 없다는 느낌을 받았습니다. (그래서 인턴을 구하는 듯한) 좋게 보면, 개발 전문 인력이 부족한 회사에서 인턴직으로 새로운 시스템을 개발하고 구축한다는 것이고 단점을 꼽자면 주먹구구식의 요청과 체계가 없음으로 인해 갈려나갈 것 같다는 것입니다. 개발도 백, 프론트 따지지 않고 할 것 같아서 이게 커리어적으로 인턴 경력으로 칠 수 있을지 추후에 백엔드 개발자로 성장하기에 도움이 될지가 미지수입니다. 부트캠프는 가면 국취제 (국민취업제도) 도움 받으며 공부할 수있고 (인턴을 가게 되면 국취제가 적용이 안됩니다. ) 제가 자바 스프링을 독학해서 지금까지 프로젝트를 한건데 사실 상 실력이 좋다, 기본기가 탄탄하다고 하긴 많이 부족해서 이런 부족한 점을 배우고 기초를 쌓고 프로젝트를 할 수 있다는 게 장점이고 단점은 부캠이라서 사실상 커리어적으로 크게 메리트가 없을 것 같긴 하다는 생각도 듭니다⋯ 기간은 둘 다 동일하다고 두었을 때(6개월) 어떤 게 맞는 선택일까요? 현실적이고 냉정한 조언 부탁드립니다..
개발자
#인턴
#부트캠프
답변 1
댓글 0
조회 578
일 년 전 · 익명 님의 질문
Streamli app Azure에 배포시.
Python Streamlit으로 앱을 하나 작성 했고 Docker image로 빌드해서 azure container repository에 푸쉬 했습니다. 그리고 이미지를 기반으로 app service를 띄웠는데요. 로컬에서는 아무 문제 없이 작동이 되는데 리모트로 올라가니 streamlit cookie manager 및 feedback component를 로딩하질 못 합니다. (사실 쿠키 매니저는 설치한 적이 없어서 왜 문제가 되는지 더더욱 잘 모르겠네요) 에러 문구에는 네트워크 레이턴시나 프록시 이슈로 컴퍼넌트를 로딩 못 하는 걸수 있다 라고 하는데 혹시 관련해서 비슷한 이슈 해결하신분 계실까요?
개발자
#streamlit
#azure
#docker
#appservice
답변 0
댓글 0
조회 72
일 년 전 · 그린티라떼 님의 질문 업데이트
.aab 설치 실행 시 firebase 알림이 수신이 안되는 현상
리즈 빌드 apk 파일 설치시에는 백그라운드, 포그라운드 알림이 수신되지만 플레이 스토어에 올린 .aab 파일 실행 시에는 왜 알림 수신이 안될까요? [참조] https://rnfirebase.io/messaging/usage
개발자
#fcm
#firebase
#reactnative
답변 0
댓글 0
조회 38
일 년 전 · 김헨리 님의 질문
turbo Repo 빌드 속도 멀티레포 보다 빠를까요?
최근에 회사에 모노레포 도입하려고 터보레포에 대해 학습하고 있습니다. 공식문서 보면 빌드도 병렬적으로 실행할 수 있고 원격 캐시를 통해 변경된 코드에 대한 프로젝트만 빌드가 가능하다는 내용을 봤습니다. 공식문서 앞부분을 학습해 봤을 때 제가 드는 생각은 멀티 레포로 운영되는 하나의 프로젝트 코드를 수정하고 빌드 후 배포하는 시간보다 터보 레포로 빌드하고 배포하는 시간이 대체적으로 더 빠를 것이라 생각듭니다. 예를들어 모노레포에서 lint나 공용으로 사용하는 ui컴포넌트는 packages/ 에서 관리하고 프로젝트 코드는 app/project1의 구조의 형태를 가지고 있다고 가정했을 때 case1. 린트 코드 한 줄 수정하고 배포 - 터보레포: 린트 수정한 프로젝트에 대해서만 빌드 - 멀티레포: 프로젝트에 전체 코드에 대한 빌드가 실행 case2. 한번에 린트, 공통ui, 특정 프로젝트 코드 수정하고 배포 - 터보레포: 병렬적으로 배포해서 빠른 배포 - 멀티레포: case1과 같이 전체 코드에 대한 빌드가 실행해서 case1과 빌드시간이 비슷하다 개발은 next.js로 하고 vercel에서 배포하고 있습니다. 제가 위에 작성한 case처럼 터보레포가 빌드시간이 더 빠르게 될까요?? 추가로 next.js프로젝트 vercel에 배포했을 때 캐시전략을 사용할 수도 있는지도 궁금하네요. redeploy할 때만 캐시를 사용할지 선택할 수 있는 것만 알고있습니다. 물론 개발자가 설정한 캐시 전략과 경우에 따라 다르겠지만 대체적으로 어느 방식이 더 빠른지 궁금합니다.
개발자
#react
#모노레포
#monorepo
#next
답변 0
댓글 0
추천해요 2
조회 159
일 년 전 · 익명 님의 질문
Next.js의 SSG와 react-query의 useSuspenseQuery
Next.js v14의 페이지 라우터 및 react-query v5의 useSuspenseQuery를 사용하여 Suspense를 사용할 때 페이지 컴포넌트에서 getStaticProps를 사용하지 않아도 SSG 빌드 타임에서 API request 하는 현상이 발생해서 찾아보니 useSuspenseQuery가 컴포넌트 렌더링 시점에 데이터 로딩하도록 설계가 되어 있기 때문에 빌드 타임에서 HTML을 만들 때 결국 API request 하게 되는 것이라고 이해했었는데 제가 이해한 부분이 맞을까요? react-query(tanstack-query)나 next.js의 공식문서에는 그러한 내용을 찾기가 어려워서 정확한 정보인지 알고 싶습니다!
개발자
#next.js
#react-query
#react
답변 0
댓글 0
조회 239
일 년 전 · 남 재민 님의 새로운 답변
리액트 빌드 후 index.html 파일로 실행 방법이 있나요?
기획자가 html파일로만 리액트를 실행 시키는 방법이 있나요? 기존 html css js의 경우 파일 공유 후 html로만 실행해서 결과를 보여주었습니다. 리액트의 경우 어떻게 해야지 기획자가 html파일로만 실행되는 결과를 볼 수 있을까요?
개발자
#react
답변 2
댓글 2
조회 162
일 년 전 · 손우진 님의 새로운 답변
Spring Cloud Config 서버에 관하여 질문이 있습니다.
MSA 아키텍처에서는 대개 환경 정보를 일괄적으로 관리하는 서버를 두는 것으로 알고 있습니다.(Cloud Native 12 Factors) 그 중에서 Spring에서 사용할 수 있는 것은 Spring Cloud Config Server입니다. 해당 컨피그 서버를 사용하면 효율적으로 application.yml를 관리할 수 있죠.. 그런데 여기까지는 좋습니다만 제 지식으로는 해결할 수 없는 문제가 발생했습니다. Github Actions CI/CD에서 빌드를 할 때 application.yml이 없어도 되지만 빌드 검증을 위해선 필요합니다. 그런데 이때 Config Server를 외부 포트로 열어놓고 Github actions 접속시 비보안적이지 않나요..? 그래서 Spring Basic Auth를 사용하여 접근하려 했지만 왜인지 모르게 오류가 계속 뜹니다. (몇 시간 동안 해봤지만 안됩니다.. 충돌 때문인지는 모르겠지만 그냥 Security 관련 Bean이 설정이 안되더라구요..) 관련해서 AWS를 활용하여 일회성 인증을 하는 방법이 있다고 합니다만.. 이것만이 방법은 아닐 거 같습니다. 에이 몰라! Config Server 외부 포트 열어놓는건 위험하니까 그냥 Github actions secrets에도 application.yml를 다 넣고 빌드 검증해보고, 실제 배포때는 Dockerfile로 프로파일 설정해서 Config Server에서 불러와야지! 라고 하기에는 그럼 application.yml이 수정될 때 마다 github actions, config server 둘다에서 수정해줘야 할 것 같습니다… 관련하여 조언 주시면 감사하겠습니다.
개발자
#spring
#spring-cloud
#spring-cloud-config
#msa
답변 1
댓글 0
조회 73
일 년 전 · 익명 님의 질문
네이버 클로바 api gateway 연동이 어렵습니다
네이버 클라우드를 이용해 챗봇을 생성하고 시나리오를 작성해 테스트까진 되었는데 빌드하고 custom 으로 메신저 말고 api형식으로 gateway와 연계하는 부분에서 막혔습니다 혹시 연계해서 해보신분 계실까요?
개발자
#api
답변 0
댓글 0
보충이 필요해요 2
조회 147
일 년 전 · 훈쓰 님의 질문
프론트엔드 모노레포 배포에 대해 궁금합니다 !
안녕하세요 프론트엔드에서 react로 모노레포구조로 운영하고있는데 현재는 통합 s3 1개에 각 프로젝트 빌드파일을 폴더로 구분하여 올리고 각 프로젝트당 1개의 cloudfront를 통해 해당 프로젝트에 접근하는 1:N 관계로 운영중입니다. 이번에 신규프로젝트가 추가되어 작업을해야하는데 앞으로 추가될 프로젝트가 계속 생길거같아서 그때마다 cloudfront를 추가해줘야하는 번거로움이 걱정됩니다... (앞으로 추가될 프로젝트까지하면 거의 react만 6개...) 이러한 모노레포 구조에서 더 좋은 배포방식이 있거나 cloudfront 한개로 운영할수있는 방법이있을까요?? (cloudfront 한개로 시도해봤는데.. 403,404 부분 index.html 이 한개밖에 설정이 안되어 프로젝트들이 제대로 찾지못해 막혔습니다... ㅠ)
개발자
#react
#모노레포
#s3
#cloudfront
#aws
답변 0
댓글 0
조회 76
일 년 전 · 민태호 님의 새로운 답변
flutter 위젯 빌드 2번 호출되는 현상
안녕하십니까 flutter로 졸업 작품 앱 개발 중인 대학생입니다! 개발 도중 widget build가 2번씩 되는 현상이 발생합니다. build 내부에서 위젯이 return 되기 이전에 특정 함수가 호출되도록 했는데, 그 함수가 2번씩 호출됩니다. 로직에는 아무런 문제가 없구요, 혹시 몰라 디버깅 로그도 찍어봤는데 역시나 2번씩 찍힙니다. 함수가 페이지를 호출하는거라 사실상 같은 페이지 2개가 호출되는 문제라 타격이 큽니다.. 비슷한 문제를 해결한 경험이 있으신 분들의 조언을 듣고 싶습니다!
개발자
#flutter
#widget
#build
#route
답변 1
댓글 0
조회 139
일 년 전 · 최윤석 님의 새로운 답변
React Native 개발자입니다. 향후 커리어를 어떻게 만들어가면 좋을까요??
React Native만 할줄 아는 만 2년차 프론트엔드 개발자입니다. 목표는 모바일 앱 프론트 전문가로 커리어를 쌓는 것입니다. 근데 요즘 할줄 아는 게 RN 밖에 없다보니 앞으로 전문성을 어떻게 더 쌓을 것이라는 걱정이 앞섭니다. 궁극적으로 대기업은 한번 찍고 와보고 싶은데, 크로스 플랫폼을 사용하는 곳은 전무하고 iOS, Android 네이티브 개발 혹은 리액트 웹뷰 방식으로 개발을 하는 것 같더라고요. 처음엔 막연하게 iOS 개발자가 되고 싶다는 생각이 있었는데, 요즘은 빠른 빌드/배포에 강점이 있고 또 동일한 JavaScript여서 러닝 커브가 높지 않겠다는 생각이 들어 웹 프론트엔드 커리어를 고민 중에 있습니다. RN만 할줄 알지만 앞으로 모바일 앱 개발자로 더 전문적이고 싶어하는 저의 커리어는 어떻게 설계하고 준비하면 될까요??
개발자
#react-native
#react
#next
#ios
#android
답변 3
댓글 0
추천해요 1
조회 507
일 년 전 · 백승훈 님의 새로운 댓글
Nextjs를 정적 웹 호스팅(dothome)으로 배포하게 될 때 문제점
안녕하세요. 이번에 맡게된 프로젝트에서 SEO가 중요하다고 판단되어 Nextjs를 사용하여 개발하였습니다. 그런데 저희 팀이 사용하고 있는 웹 호스팅 서버가 dothome입니다. dothome은 정적 웹 사이트 호스팅 서버라고 알고 있는데, 이 서버로 호스팅하게 되면 몇 가지 문제점이 있다고 판단되어 질문을 남기게 되었습니다. 1. dothome에 배포하기 위해 정적 빌드를 하게 되면, 서버 사이드 렌더링(SSR) 기능을 사용할 수 없게 되는데, 이는 NextJS를 사용해서 얻을 수 있는 SEO 측면의 이점을 얻을 수 없게되는 건가요? 그렇게 된다면 SEO를 개선하는 방법이 있을까요? 2. Nextjs에서 제공하는<Image> 태그가 서버 측에서 이미지 최적화기능을 제공하는 것으로 알고 있는데, 정적빌드를 사용하게 되면 일반적인 img 태그와 다를 바가 없어지는 걸까요? 3. 마지막으로 Nextjs를 사용하기 위해서 웹 호스팅을 변경하는 것이 좋을지, 변경해야한다면 어떤 것을 추천하지는 시 여쭤봅니다.
개발자
#next.js
#dothome
#ssr
#seo
답변 3
댓글 3
추천해요 4
조회 1,085
일 년 전 · inni 님의 새로운 댓글
Docker Hub Image Push 후에 EC2에서 자동으로 Pull -> service start하기
현재 GithubAction으로 Spring Boot jar 파일을, 도커 빌드, 도커 푸시까지 완료해서 도커 허브에 private repo에 올려놓는데 까지는 성공했습니다. 여기서 두번째 단계로, ssh action을 사용하지 않고 private subnet에 위치한 EC2 instance에서 푸시된 도커 이미지를 가져와서 compose up을 하고 싶습니다. 이걸 수행할 수 있는 팁이나 방법이 있을까요? self-hosted라는게 보이는데 잘 모르겠더라구요.. 제가 찾지 못하는 팁이나 자료들 부탁드립니다! 감사합니다!
개발자
#docker
#ci/cd
#spring-boot
#githubaction
답변 1
댓글 1
보충이 필요해요 1
조회 117
일 년 전 · 우엉김밥 님의 새로운 댓글
리액트 프로젝트 vite로 빌드후 서버에 배포시 cannot get...
react-router-dom 을 사용중에있습니다. vite로 빌드하고 서버에 올렸는데... 경로 이동시 cannot get 이 뜹니다. 찾아본결과 서버에서 요청 url을 찾아서 그렇다 , 모든 서버 요청을 /index.html로 리디엑션하도록 하면 된다고 하는데 혹시 vite에서 그런 설정을 할 수 있나요?
개발자
#vite
#react-router-dom
답변 1
댓글 1
조회 225
일 년 전 · 우엉김밥 님의 질문
react router dom cannot get
const router = createBrowserRouter([ { path: "/", element: <App />, children: [ { index: true, path: "/", element: <Login /> }, { path: "/filelist", element: <FileList /> }, { path: "/fileupload", element: <FileUPload /> }, ], }, ]); 이렇게 작성했는데 빌드후 cannot get이 뜹니다 ㅠㅠ
개발자
#react-router-dom
답변 0
댓글 0
조회 28
일 년 전 · 백승훈 님의 새로운 답변
react s3 배포 이슈... 도와주세요 ㅠㅠ
안녕하세요 react를 S3 + Cloudfront를 이용해서 배포하려고합니다 ! 로컬에서는 잘 되고, 빌드해서 S3에 올리면 뒤에 /list , /mypage 같은 url을 추가로 붙이면 페이지가 잘 나오는데 기본 url로 처음 들어가면 빈파일이 자동으로 다운받아지면서 접속이 안되고있습니다.... 어떻게 해야할까요..? ㅠㅜ
개발자
#react
#aws
#s3
#cloudfront
답변 1
댓글 0
조회 64
일 년 전 · 이지우 님의 질문 업데이트
웹 개발만 해봤던 대학생 앱을 만들어 보려고 합니다.
저는 저번 회사에서 인턴을 하면 리액트 장고로 웹 개발만 해본 경험이 있습니다. 이번에 앱을 만들어 보려고 하는데 개발 흐름 자체가 어떻게 되는지 궁금하여 고수님들께 조언을 구하고자 글을 씁니다. 저는 크로스 플랫폼으로 제작하려 해서 프론트는 리액트 네이티브로 만들고 백앤드는 똑같이 장고로 작업을 하려고 생각하고 있습니다. 그런데 여기서 의문점이 웹에서는 프론트, 리버스 프록시, 백앤드를 한꺼번에 한 파일에서 관리해서 서버에 올렸었는데 앱은 따로 플레이스토어나 앱스토어에 apk파일을 올려야하지 않습니까....? 그렇다면 앱에서 서버 데이터베이스 등을 이용하려면 백앤드만 따로 아마존 ec2같은 서버에 배포해 놓는 걸까요? 되도록이면 파이어베이스는 알람 기능 구현에만 사용하고 서버 쪽을 직접 짜보려고 합니다. 제가 이해한 바로는 apk파일에는 리액트네이티브(프론트)와 장고(백)을 빌드한 파일이 들어가고, 서버는 또 따로 장고 등을 사용해서 만들어서 ec2 등에 배포해서 그 둘이 통신하는 구조가 맞을까요? 도움 주시면 열심히 경청하도록 하겠습니다. 감사합니다 :) 다들 좋은 연말 되세요!
개발자
#react-native
#django
#ec2
#app
답변 1
댓글 1
조회 164
일 년 전 · aigoia 님의 답변 업데이트
27살 게임 클라이언트 개발자 진로 고민입니다.
현재 외국계 기업에서 게임 클라 주니어로 입사한지 2년차 입니다. 회사에서 분명히 많은것을 배우고 협업을 통해 프로젝트를 개발하면서 서비스 런칭까지 진행해보는 값진 경험을 할 수 있었습니다. 특히 전반적인 프로젝트의 구현, 프로젝트 빌드 방법 및 빌드 관리(ios,aos), 서버와의 실시간 서버 구현 협업 등 물론 대기업에서 일하고 계신 분들에 비해 한참 모자라고 제대로 개발자 일을 시작했다고 볼 수 없을 것이고 아직 모든것을 경험 해봤다고 할 수는 없겠지만, 프로젝트를 출시함에 있어 필요한 전반적인 부분은 배웠다고 생각합니다. 아무튼 이렇게 일을 하면서 느낀점은 어떤 기술 스택에 대해 정말 깊게 파보지 못하고 급하게 넓고 얕게 가능한 모든것을 배우면서 서비스 런칭을 위해 어떻게든 적용시켰다라고 밖에 느껴지지 않습니다. 그러면서 이 회사에서 일하는 방식과 성장하는 방식에 회의감이 들기 시작했고 얼마전 초빙 강사님의 그래픽스 강연을 들으면서 게임엔진단에서 복잡한 코드를 아주 간단한 수학 공식으로 코드를 최적화하는 방법을 보고 큰 감동을 받았습니다. 특히 대학시절부터 수학을 공부하기 싫어했던 제 모습이 너무나도 후회되었고 한심하다고 느끼게 되었고 얼마전부터 선형대수 미적분학 온라인 강의를 구매하여 공부를 하고 있습니다. 그러면서 파이썬 강의를 구매해서 AI 쪽 공부도 아직 수박 겉핥기 식이지만 같이 진행하면서 이 분야에 많은 흥미와 관심이 생기게 되었습니다. 그러면서 AI/ML 개발자로 이직/취업하려면 석사학위가 필요하다는 둥 여러가지 소식을 접하고 좋은 프로그래머가 되기 위해서는 수학을 잘 해야한다는 마인드셋을 가지고 정말 열심히 공부를 해보고 싶은 의욕도 생겼습니다. 하지만 현실적으로 생각하면 지속적인 수입원이 끊기거나 더 줄어듦과 동시에 경력의 차단이 발생하게 되니깐 차라리 이직 준비를 더 열심히 해서 게임 개발자 경력을 놓지않고 더 좋은 곳으로 이직을 하는게 맞는건지.. 아니면 회사를 다니면서 대학원 준비를 하며 적성에 맞다고 느껴지면 퇴사하고 전일제로 대학원 진학을 하여 석사 학위를 따고 원하는 공부를 맘껏 하면서 AI/ML개발자로 이직을 할지 고민이됩니다..
개발자
#게임-개발
#신입
#인공지능
#머신러닝
#클라이언트
답변 1
댓글 0
추천해요 1
조회 236
일 년 전 · 강병진 님의 답변 업데이트
안드로이드 스튜디오에서 빌드가 안되요
plugins { id("com.android.application") kotlin("android") } android { namespace = "com.example.next" compileSdk = 33 defaultConfig { applicationId = "com.example.next" minSdk = 24 targetSdk = 33 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { isMinifyEnabled = false proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } } dependencies { implementation("androidx.appcompat:appcompat:1.6.1") implementation("com.google.android.material:material:1.9.0") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") } 여기서 에러가 뜨는데 뭘까요 Unresolved reference: id Unresolved reference: kotlin Unresolved reference: android Unresolved reference: namespace Unresolved reference: compileSdk Unresolved reference: defaultConfig Unresolved reference: applicationId Unresolved reference: minSdk Unresolved reference: targetSdk Unresolved reference: versionCode Unresolved reference: versionName Unresolved reference: testInstrumentationRunner Unresolved reference: buildTypes Unresolved reference: release Unresolved reference: isMinifyEnabled Unresolved reference: proguardFiles Unresolved reference: getDefaultProguardFile
개발자
#안드로이드스튜디오
답변 1
댓글 0
조회 227
일 년 전 · 박범수 님의 답변 업데이트
쿠버네티스가 도커 지원 중단 선언 하고 크게 바뀐 점이 있을까요?
데브옵스 관련 공부중인데 현직 데브옵스 분들의 의견이 궁금하여 질문합니다. 컨테이너 런타임으로 도커를 지원중단 했는데, 사실상 도커로 만든 이미지와 컨테이너는 여전히 사용 가능하고 빌드 또한 가능한거로 알고 있습니다. 컨테이너 런타임으로 containerd를 사용하면 사실상 도커의 런타임과 큰 차이가 없는거 같은데 어떤점이 많이 달라졌을 지 현직에 계신 분들 의견이 궁금합니다
개발자
#docker
#kubernetes
#오케스트레이션
#container
답변 1
댓글 0
조회 314