#system

질문 1
해시태그 없이 키워드만 일치하는 질문은 개수에 포함되지 않아요.

8달 전 · 문종호 님의 새로운 답변

RAG 를 짜는 중에 도무지 어떤 부분이 문제인지 모르겠습니다.

# JSON 파일에서 FAQ 데이터를 로드하는 함수 def load_faq_data_from_json(file_path): with open(file_path, 'r', encoding='utf-8') as f: faq_data = json.load(f) return faq_data # FAQ 데이터 로드 json_file_path = '' faq_data = load_faq_data_from_json(json_file_path) # ChromaDB 클라이언트 및 Embedding 설정 chroma_client = chromadb.Client() # ChromaDB 클라이언트 생성 # 고유한 컬렉션 이름 생성 collection_name = "faq_data_" + datetime.datetime.now().strftime("%Y%m%d_%H%M%S") collection = chroma_client.create_collection(collection_name) # LangChain의 Text Splitter 설정 text_splitter = RecursiveCharacterTextSplitter( chunk_size=512, chunk_overlap=50 ) # OpenAI 임베딩 설정 openai_api_key = '' embedding_function = OpenAIEmbeddings( model="text-embedding-ada-002", openai_api_key=openai_api_key ) # 텍스트 스플리팅 및 임베딩 생성 함수 def split_and_embed_text(text): splitted_texts = text_splitter.split_text(text) print(f"Splitted texts: {splitted_texts}") try: # OpenAIEmbeddings는 embed_documents를 사용합니다. embeddings = embedding_function.embed_documents(splitted_texts) except Exception as e: print(f"임베딩 생성 중 오류 발생: {e}") return None # 임베딩이 제대로 생성되었는지 확인합니다. if embeddings is None or len(embeddings) == 0: print("임베딩 생성 실패") return None # 임베딩을 numpy 배열로 변환 embeddings = np.array(embeddings) print(f"Embeddings shape: {embeddings.shape}") # 임베딩 벡터의 차원을 확인하고 처리합니다. if embeddings.ndim == 1 and embeddings.shape[0] == 1536: # 임베딩이 1차원 배열이고 길이가 1536인 경우 final_embedding = embeddings elif embeddings.ndim == 2 and embeddings.shape[1] == 1536: # 임베딩이 2차원 배열이고 두 번째 차원이 1536인 경우 final_embedding = np.mean(embeddings, axis=0) else: print("임베딩 벡터의 차원이 예상과 다릅니다.") return None print(f"Final embedding shape: {final_embedding.shape}") return final_embedding # FAQ 데이터를 Vector DB에 저장 def store_faq_data_in_vector_db(faq_data, collection): for faq in faq_data: # 'question'과 'answer'가 있는지 확인하고, 'answer'가 None이 아닌지 확인 if 'question' not in faq or 'answer' not in faq or faq['answer'] is None: print(f"누락된 'question' 또는 'answer'로 인해 항목을 건너뜁니다: {faq}") continue # 다음 항목으로 넘어감 # 텍스트 스플리팅 및 임베딩 생성 question_embedding = split_and_embed_text(faq['question']) if question_embedding is None: print(f"Embedding generation failed for question: {faq['question']}") continue # 임베딩이 없으면 다음 질문으로 넘어감 print(f"Generated embedding for question '{faq['question']}': {question_embedding}") # 각 질문에 고유한 ID 생성 faq_id = str(uuid.uuid4()) # 메타데이터에서 None 값을 제거 metadata = {k: v for k, v in {"answer": faq['answer']}.items() if v is not None} # Vector DB에 저장 collection.add( documents=[faq['question']], metadatas=[metadata], ids=[faq_id], embeddings=[question_embedding] ) # 추가 후 임베딩 확인 (저장된 후 곧바로 확인) stored_results = collection.get(ids=[faq_id], include=["embeddings"]) if stored_results['embeddings'] is not None and len(stored_results['embeddings']) > 0: print(f"Embedding for question '{faq['question']}' successfully stored.") else: print(f"Failed to store embedding for question '{faq['question']}'") # FAQ 데이터를 JSON에서 로드하고 저장 store_faq_data_in_vector_db(faq_data, collection) 이렇게 데이터를 저장하고 # 환경 변수에서 API 키 로드 openai_api_key = os.getenv("OPENAI_API_KEY") if not openai_api_key: raise ValueError("OpenAI API 키가 설정되지 않았습니다. 환경 변수 OPENAI_API_KEY를 설정하세요.") # OpenAI 임베딩 설정 embedding_function = OpenAIEmbeddings( model="text-embedding-ada-002", openai_api_key=openai_api_key ) # LangChain의 Text Splitter 설정 (일관성 유지) text_splitter = RecursiveCharacterTextSplitter( chunk_size=512, chunk_overlap=50 ) # ChromaDB 클라이언트 및 컬렉션 설정 chroma_client = chromadb.Client() collection_name = "faq_data_collection" try: # 이미 존재하는 컬렉션인지 확인하고, 있으면 가져옴 collection = chroma_client.get_collection(name=collection_name) except chromadb.errors.CollectionNotFoundError: # 컬렉션이 존재하지 않을 경우에만 생성 collection = chroma_client.create_collection(name=collection_name) # Vector DB에서 유사 질문 검색 (ChromaDB) def find_similar_question_in_vector_db(new_question_embedding, collection, k=5): results = collection.query(query_embeddings=[new_question_embedding], n_results=k, include=['documents', 'metadatas', 'embeddings']) best_similarity = 0 best_question = None best_answer = None # 검색 결과에서 각 질문의 유사도와 답변을 처리합니다. if 'documents' in results and 'metadatas' in results: documents = results['documents'][0] metadatas = results['metadatas'][0] embeddings = results['embeddings'][0] for i in range(len(documents)): stored_embedding = embeddings[i] metadata = metadatas[i] if stored_embedding is not None: # 코사인 유사도를 통해 유사도를 계산합니다. similarity = cosine_similarity([new_question_embedding], [stored_embedding])[0][0] print(f"유사도: {similarity} for {documents[i]}") # 유사도가 가장 높은 결과를 선택하며, 임계값 이상일 경우에만 선택 if similarity > best_similarity and similarity >= SIMILARITY_THRESHOLD: best_similarity = similarity best_question = documents[i] if isinstance(metadata, list): metadata = metadata[0] best_answer = metadata.get('answer') if isinstance(metadata, dict) else None return best_question, best_answer # Fine-tuned GPT를 사용해 새로운 답변 생성 def gpt_generate_response_from_finetuned_gpt(question, style="의사 A 말투"): prompt = f"다음은 환자의 질문입니다: \"{question}\". 아래 말투를 사용하여 질문에 대해 성실하고 정확한 답변을 작성해주세요.\n\ 말투: {style}" response = client.chat.completions.create( model="", # Fine-tuned된 GPT 모델 ID messages=[ {"role": "system", "content": "You are a helpful medical assistant."}, {"role": "user", "content": prompt}, ], max_tokens=300, temperature=0.7, # 답변의 다양성을 조절합니다. ) return response.choices[0].message.content.strip() # 새로운 질문 처리 및 최종 응답 생성 def generate_final_response(new_question, collection): # 텍스트 스플리팅 및 임베딩 생성 splitted_texts = text_splitter.split_text(new_question) new_question_embedding = np.mean(embedding_function.embed_documents(splitted_texts), axis=0) # ChromaDB에서 유사 질문 검색 similar_question, answer = find_similar_question_in_vector_db(new_question_embedding, collection) if similar_question and answer: final_response = f"질문: {new_question}\n유사 질문: {similar_question}\n기본 답변: {answer}" else: generated_answer = gpt_generate_response_from_finetuned_gpt(new_question) final_response = f"질문: {new_question}\nGPT로 생성된 답변: {generated_answer}\n(이 답변은 벡터데이터에서 유사한 답변을 찾을 수 없어 GPT에 의해 생성되었습니다.)" return final_response # 사용자로부터 새로운 질문 입력 받기 new_question = input("새로운 질문을 입력하세요: ") # 최종 응답 생성 response = generate_final_response(new_question, collection) print(response) 로 데이터베이스에서 유사한 질문-답변 쌍을 끌어오려는데 정확히 같은 질문을 넣어도 (이러면 유사도가 1인데) 저장되어있는 답변이 끌어와지질 않네요...

개발자

#llm#rag

답변 1

댓글 0

조회 103

10달 전 · 석정도 님의 질문

리액트 네이티브 릴리즈로 배포 시 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

조회 68

일 년 전 · 익명 님의 새로운 댓글

우분투에서 pip install 시, 다음과 같은 오류가 발생합니다.

안녕하십니까 선배님들. 현재 AWS EC2에서 안드로이드 어플리케이션 용으로 백엔드 서버를 구축하는 도중, 다음과 같은 오류를 맞이했습니다. 현재 사용하는 ubuntu는 24.04 LTS 버전입니다. 도무지 해결 방안을 찾지 못해서 이렇게 조언을 구하고 싶습니다. 감사합니다. pip install git error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. If you wish to install a non-Debian packaged Python application, it may be easiest to use pipx install xyz, which will manage a virtual environment for you. Make sure you have pipx installed. See /usr/share/doc/python3.12/README.venv for more information. note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification.

개발자

#서버

#ec2

#ubuntu

답변 2

댓글 2

추천해요 1

조회 840

일 년 전 · 이양일 님의 답변 업데이트

노드 https질문

안녀하세요. 프로젝트를 진행중에 애러를 만났는데 혹시 알고계신분 답변해주시면 정말 감사합니다. 리액트로 프론트를 만들고 node+express 를 웹서버 역할로 프록시 설정을 했습니다. 그리고 ssl 인증을하여 브라우저에 https로 접속 가능하게 하였습니다. 문제는 여기부터인데,, 기존 통신 api가 http로 되어있었는데 그런데 백앤드 개발자분이 api도 https로 바꾸셨다고 하여 https 통신을 하니 Error occurred while proxying request happyman:11111 to https://happyman:11111/ [EPROTO] (https://nodejs.org/api/errors.html#errors_common_system_errors) 라는 오류가 났습니다. 또 신기한건 기존 http로 설정된 api 통신은 되네요? 인터넷이서 하라는거 대부분 했는데 잘 안되네요ㅠㅠ

개발자

#react

#node

#express

답변 1

댓글 1

추천해요 1

조회 458

일 년 전 · Jake 님의 새로운 댓글

Flutter에서 Ini File

VSCODE환경에서 Flutter를 이용해서 Android app을 개발중입니다. ini file을 통해 ip address등 환경변수들을 저장하고 싶은데, ini.dart 나 ini_file.dart등 package를 써봤는데, 권한 문제인지 경로문제인지 화일을 찾을수 없다고 나오거나, (OS Error: Read-only file system, errno = 30)이런 에러가 뜹니다. 아직 Flutter는 초보라서 잘 모르니 고수분들의 지도 간곡히 부탁드립니다.

개발자

#flutter

#android

#vscode

답변 2

댓글 10

조회 181

일 년 전 · 초코칩 님의 새로운 답변

for문을 이용한 중복체크 방법

public MemberDTO doRegist() { sc.nextLine(); System.out.println("*****************************************************"); System.out.print("아이디를 입력하세요 : "); String id = sc.nextLine(); System.out.print("비밀번호를 입력하세요 : "); String pwd = sc.nextLine(); System.out.print("이름을 입력하세요 : "); String name = sc.nextLine(); System.out.print("나이를 입력하세요 : "); int age = sc.nextInt(); System.out.print("성별을 입력하세요 : "); char gender = sc.next().charAt(0); sc.nextLine(); System.out.print("핸드폰 번호를 입력하세요 : "); String phone = sc.nextLine(); System.out.print("이메일을 입력하세요 : "); String email = sc.nextLine(); System.out.println("*****************************************************"); MemberDTO user = null; if(answer == 'Y') { user = new MemberDTO(id, pwd, name, age, gender, phone, email); }else { System.out.println("로그인 페이지로 돌아갑니다."); mainLogin(); } return user; } 여기에 for 문으로 아이디 중복체크를 넣고 싶은데 어떻게 넣어야 할까요...ㅠㅠ...

개발자

#intellij-java

답변 1

댓글 0

보충이 필요해요 1

조회 164

일 년 전 · 익명 님의 댓글 업데이트

Oracle 21c 에서 default tablespace 지정해주는데 오류가 납니다.

안녕하세요. Oracle 21c에서 tablespace를 새로 생성하여 새로 만든 계정에 default tablespace로 지정해주려 하는데, 오류가 납니다. window cmd 창에서 sys as sysdba 로 접속했습니다. --------------------------- 오류 내용--------------------------------- SQL> ALTER USER C##SSO_USER DEFAULT TABLESPACE SSO_DB; ALTER USER C##SSO_USER DEFAULT TABLESPACE SSO_DB * 1행에 오류: ORA-65048: 플러그인할 수 있는 데이터베이스 XEPDB1에서 현재 DDL 문을 처리하는 중 오류가 발생했습니다. ORA-00959: 테이블스페이스 'SSO_DB'이(가) 존재하지 않습니다. --------------------------------------------------------------------- SELECT tablespace_name FROM DBA_TABLESPACES; 를 하면 TABLESPACE_NAME ------------------------------------------------------------ SYSTEM SYSAUX UNDOTBS1 TEMP USERS TEST_UP SSO_DB 라고 잘 뜨는데.. 왜 PDB 인 XEPDB1 에서 처리하는지 의문입니다. sys as sysdba로 접속 후 따로 PDB로 접속하진 않았거든요 이전에도 동일한 작업(tablespace 생성, 다른 계정이 default tablespace로 지정) 을 했었는데, 그땐 잘 됐거든요..

개발자

#oracle21c

#oracle

답변 1

댓글 1

조회 720

2년 전 · 희진 님의 질문

react-native xcode build시 발생 에러

``` ld: warning: ignoring file '/Users/heejinroh/Library/Developer/Xcode/DerivedData/OkCeo-abydistjrfwgsufmyimbpydzjpqj/Build/Products/Debug-iphonesimulator/Flipper-Folly/libFlipper-Folly.a[3](Assume.o)': found architecture 'arm64', required architecture 'x86_64' ld: warning: ignoring file '/Users/heejinroh/Library/Developer/Xcode/DerivedData/OkCeo-abydistjrfwgsufmyimbpydzjpqj/Build/Products/Debug-iphonesimulator/Flipper-Folly/libFlipper-Folly.a[2](Addr2Line.o)': found architecture 'arm64', required architecture 'x86_64' ld: Undefined symbols: _OBJC_CLASS_$_RCTBridge, referenced from: in AppDelegate.o _OBJC_CLASS_$_RCTBundleURLProvider, referenced from: in AppDelegate.o _OBJC_CLASS_$_RNKakaoLogins, referenced from: in AppDelegate.o _RCTAppSetupDefaultRootView, referenced from: -[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o _RCTAppSetupPrepareApp, referenced from: -[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o clang: error: linker command failed with exit code 1 (use -v to see invocation) ``` xcode 14 버전으로 생성된 프로젝트를 xcode 15버전으로 진행하여 실행했는데 빌드단계에서 에러가 계속 발생해서 혹시 도움좀 주실수있을까요? System: OS: macOS 14.0 CPU: (12) arm64 Apple M2 Pro Memory: 647.83 MB / 32.00 GB Shell: 5.9 - /bin/zsh Binaries: Node: 18.17.1 - ~/.nvm/versions/node/v18.17.1/bin/node Yarn: 1.22.19 - ~/.nvm/versions/node/v18.17.1/bin/yarn npm: 9.6.7 - ~/.nvm/versions/node/v18.17.1/bin/npm Watchman: 2023.09.25.00 - /opt/homebrew/bin/watchman Managers: CocoaPods: 1.11.3 - /Users/heejinroh/.rvm/gems/ruby-3.2.1/bin/pod SDKs: iOS SDK: Platforms: DriverKit 23.0, iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0 Android SDK: Not Found IDEs: Android Studio: 2022.3 AI-223.8836.35.2231.10671973 Xcode: 15.0.1/15A507 - /usr/bin/xcodebuild Languages: Java: 11.0.11 - /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin/javac npmPackages: @react-native-community/cli: Not Found react: 18.1.0 => 18.1.0 react-native: 0.70.8 => 0.70.8 react-native-macos: Not Found npmGlobalPackages: *react-native*: Not Found

개발자

#react-native

#xcode

#build

답변 0

댓글 0

조회 326

2년 전 · 익명 님의 새로운 댓글

CMS 개발을 해보고싶습니다

제가 알고있는 CMS란 contents management system으로 개발 지식이 없는 사람도 홈페이지를 바꿔가며 운영, 관리 할수있도록 돕는 도구? 라고 알고있습니다 솔루션 회사에서 1년차 백엔드 개발자로 일하고 있는데 CMS를 만들면서 공부도 할겸, 개인 프로젝트로 쓸겸, 회사에도 기여해보고 싶어요 자바 스프링이나 부트로 만들어보고싶은데 선배님들 혹시 추천해줄만한 교재가 있을까요? 교재가 아니더라도 따라하면서 만들어나가고 배워볼 수 있는 수단이라면 뭐든 좋습니다 추천좀 해주세요! 조언도 감사히 받겠습니다

개발자

#java

#spring

#boot

#jsp

#mybatis

답변 1

댓글 1

조회 191

2년 전 · 손호영 님의 질문

한글 인코딩을 했는데 에러가 계속나요

error: unmappable character (0xEB) for encoding x-windows-949 import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Love2 { public static void main(String[] arge){ String url = "jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf8"; String username = "root"; String password = "1234"; try { Connection connection = DriverManager.getConnection(url, username, password); System.out.println("데이터베이스에 연결되었습니다."); // 여기에서 SQL 쿼리를 실행하여 데이터를 관리합니다. connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } 어떻게 오류가 있을까요

개발자

#jdbc

답변 0

댓글 0

조회 62

2년 전 · 손호영 님의 질문

jdbc에서 한글인코딩이 안되었는데 코드에 문제가 있는 건가요?

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Love2 { public static void main(String[] arge){ String url = "jdbc:mysql://localhost:3306/mysql"; String username = "root"; String password = "1234"; try { Connection connection = DriverManager.getConnection(url, username, password); System.out.println("데이터베이스에 연결되었습니다."); // 여기에서 SQL 쿼리를 실행하여 데이터를 관리합니다. connection.close(); } catch (SQLException e) { e.printStackTrace(); } } }

개발자

#jdbc

#java

답변 0

댓글 0

조회 54

2년 전 · 익명 님의 질문

EC2 Classic에서 VPC로 마이그레이션

안녕하세요. 회사의 오래된 인스턴스가 EC2 Classic인데, 인스턴스가 정지되어 VPC로 옮겨야 실행이 가능한 상황 입니다. 원래는 AWS Systems Manager의 자동화를 이용하여 마이그레이션 할려고 했으나 HVM이 아니이게 불가능하다고 합니다.. AMI + Snapshot 이용해서 인스턴스를 새롭게도 만들어봤으나 안에 데이터들이 안 보이더라고요.. 결론은 EC2 Classic에서 VPC로 마이그레이션 하는 법에 대해서 질문 드립니다..

개발자

#aws

#ec2

#classic

#vpc

답변 0

댓글 0

조회 47

일 년 전 · 다민 님의 질문 업데이트

백엔드 취업 및 포트폴리오 조언 부탁드립니다.

안녕하세요 선배님들! 국비과정 하면서 만든 포트폴리오가 조금 부족하다 느껴서 조금 더 다듬고 이력서에 첨부해서 열심히 지원하고 있었습니다. 근데 스무군데 넘게 지원했음에도 면접제의가 1개도 안오더라구요.. 그래서 더 완성도 있게 포트폴리오를 만들어볼까 했는데 회사에서 원하는 백엔드 개발자 포트폴리오는 어떤걸 보여줘야 될 지 감이 잘 안오더라구요 그래서 스프링을 더 깊게 공부해보고 블로그를 만들까..? 아니면 프로젝트 스터디 같은걸 구해서 협업을 해볼까..? 현재는 이 2가지 고민중에 있는데 더 나은 공부방향이나 프로젝트 추가기능, 취업 노하우 등 조언 부탁드립니다. 이력서에 첨부했던 프로젝트 입니다 https://www.notion.so/user-system/62f5383be1d54caf891a06d2851a83ac

개발자

#취업

#포트폴리오

#백엔드

#취준생

답변 1

댓글 1

조회 226

2년 전 · 커리어리 AI 봇 님의 새로운 답변

java에서 입력받은 string을 file경로로 인식하게 하는 방법이 있을까요?

import java.io.*; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Scanner; import java.util.regex.Matcher; public class Keyword { public static void main(String[] args) throws IOException { String str,str1; Scanner sc = new Scanner(System.in); System.out.printf("파일에서 찾을 키워드를 입력하세요:"); str = sc.nextLine(); System.out.printf("키워드를 찾을 파일경로를 입력하세요:"); str1 = sc.nextLine(); String testPath = str1; //이 부분 때문에 골치가 아픕니다!!! String OsFilePath = testPath.replaceAll("/", Matcher.quoteReplacement(File.separator)); String path1 = OsFilePath.replaceAll(Matcher.quoteReplacement(File.separator), "/"); Path path2 = Paths.get(path1); String content = Files.readString(path2); String[] result = content.split("\n"); for(int i=0; i<result.length; i++) { if (result[i].contains(str)) { System.out.printf((i+1)+"번째 줄에서\"%s\"이라는 키워드가 감지되었습니다.: \n", str); System.out.println((i+1)+"번째 줄 ->"+result[i]); } } sc.close(); } } 사진대로 나오게 하고 싶습니다.

개발자

#java

#javascript

#path

#string

#file

답변 1

댓글 0

조회 149

2년 전 · 커리어리 AI 봇 님의 새로운 답변

java에서 입력받은 string을 file경로로 인식하게 하는 방법이 있을까요?

import java.io.*; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Scanner; import java.util.regex.Matcher; public class Keyword { public static void main(String[] args) throws IOException { String str,str1; Scanner sc = new Scanner(System.in); System.out.printf("파일에서 찾을 키워드를 입력하세요:"); str = sc.nextLine(); System.out.printf("키워드를 찾을 파일경로를 입력하세요:"); str1 = sc.nextLine(); String testPath = str1; //이 부분 때문에 골치가 아픕니다!!! String OsFilePath = testPath.replaceAll("/", Matcher.quoteReplacement(File.separator)); String path1 = OsFilePath.replaceAll(Matcher.quoteReplacement(File.separator), "/"); Path path2 = Paths.get(path1); String content = Files.readString(path2); String[] result = content.split("\n"); for(int i=0; i<result.length; i++) { if (result[i].contains(str)) { System.out.printf((i+1)+"번째 줄에서\"%s\"이라는 키워드가 감지되었습니다.: \n", str); System.out.println((i+1)+"번째 줄 ->"+result[i]); } } sc.close(); } } 사진대로 나오게 하고 싶습니다.

개발자

#javascript

#path

#string

#file

답변 1

댓글 0

조회 546

2년 전 · 커리어리 AI 봇 님의 새로운 답변

쿠버네티스 설치 도커 오류ㅠ systemctl start docker && systemctl enable docker

선배님들 도와주세요....

개발자

#도커

#쿠버네티스

#k8s

답변 2

댓글 0

조회 132

2년 전 · 커리어리 AI 봇 님의 새로운 답변

스프링 패스변수 질문

@RequestMapping("/member/delete/{id}") public ResponseEntity<String> deleteMember(@RequestParam List<String> id) { int result1=secessionService.deleteSecession(id); int result = memberService.deleteMember(id); HashMap<String, String> map = new HashMap<String, String>(); map.put("count", String.valueOf(result)); if(result != 0) { map.put("message", "데이터 삭제 성공"); }else { map.put("message", "데이터 삭제 실패"); System.out.println(result); } return new ResponseEntity(map,HttpStatus.OK); } 체크박스로 선택한 여러개의 아이디들을 한꺼번에 삭제하려는데 하나만 선택했을 때만 삭제가 되고 있어요 삭제하려는 아이디가 1개가 될수도 10가 될수도 있어 불특정, 유동적입니다 그러려면 RequestMapping부분을 어떻게 고치면 좋을까요??

개발자

#java

#스프링

#spring

#웹개발

답변 2

댓글 0

조회 176

2년 전 · 김민식 님의 답변 업데이트

[SwiftUI]array에 값이 append 되질 않아요

코드 실행은 되는데 만든 plus버튼을 눌러서 AddFile함수를 실행시켜도 folders어레이에 아무 값이 추가 되질 않아요ㅠ AddFile함수를 잘못 작성한 것일까요? 코드는 전체 복붙해놨습니다 import SwiftUI struct Category: View { var body: some View { NavigationView { ScrollView { VStack { HStack { Text("Category") .font(.title) .padding(.horizontal) Spacer() Button { AddFile(title: "hello") } label: { Image(systemName: "plus") .font(.title2) .padding(.horizontal) } } Text("\(folders.count)") if folders.first != nil { ForEach(folders) { folder in ZStack { RoundedRectangle(cornerRadius: 15) .frame(width: 100, height: 100) .foregroundColor(.yellow) Text(folder.title) .font(.title3) .fontWeight(.bold) } } } else { Text("No folder") } } } } } func AddFile(title: String) { folders.append(Folder(title: title)) } } struct Folder: Identifiable { var id = UUID().uuidString var title: String } var folders: [Folder] = [ Folder(title: "hi"), Folder(title: "hello") ] struct Category_Previews: PreviewProvider { static var previews: some View { Category() } }

개발자

#swift

#swiftui

#append

#array

답변 1

댓글 0

추천해요 1

조회 219

2년 전 · 은서 님의 새로운 댓글

next.js 폴더나 컴포넌트 구조를 어떻게 짜시나요?

회사에서 next.js 폴더 구조랑 컴포넌트를 한 번 리팩토링하려고 하는데, 어떤 구조로 접근하는게 좋은지 의견을 좀 구하려고합니다 ㅎㅎ 현재는: pages, templates, components, elements 형태로 폴더가 나뉘어져있고, pages → templates → components → elements 형태로 의존하도록 설계가 되었다고 하더라구요. 그치만 설계와는 달리 여러 훅 (비즈니스, UI 모두)들이 혼용되어서 pages, templates, components에 범벅이 되어 있는 상태입니다. 제가 생각한건: pages → templates → components → elements 형태는 유지하고, pages는 최소한의 로직만 있고 templates 에서 비즈니스 로직을 아래로 넘겨주는 형태를 생각하고 있어요. 어떤 방식일지는 케바케일 것 같은데, 가장 단순한 방법은 prop으로 넘겨주는 형태를 생각하고 있습니다. 컴포넌트 간 상태가 공유되어야한다면 카카오 형님들 블로그 (https://fe-developers.kakaoent.com/2022/220505-how-page-part-use-atomic-design-system/) 를 좀 참고해서 compound pattern으로 만들어볼까 생각중이구요. 막상 고민하다보니 다른 분들은 어떻게 작업하시는지 궁금해서요. 혹시 여러분들은 next.js 쓰시면서 구조 같은거는 어떻게 잡으셨나요??

개발자

#react

#next.js

답변 2

댓글 2

추천해요 11

보충이 필요해요 1

조회 2,915