2달 전 · 노민영 님의 새로운 답변
어느 게 포폴에 더 도움될까요?? (nodejs프젝 -> 스프링으로 변환 vs 쌩으로 한달짜리 프젝 시작)
이번 봄에 백엔드 인턴을 하고 싶어 급하게 프로젝트 경험을 쌓으려고 합니다,, 그런데 아직 백엔드 포폴이 마땅치 않아서(nodejs로 참여한 작은 프젝 하나 있어요🥹) 이번 겨울 동안 급하게 프로젝트를 준비하려고 합니다. 생각해 놓은 건 두 가지 경우가 있는데요 1. 기존에 nodejs 백엔드로 참여한 팀프로젝트가 있는데 이걸 스프링으로 혼자 변환해보기 (프젝 규모가 크지는 않아요 배포도 안했고) 2. 인프런 등등에서 한두달짜리 프로젝트 새로 모집하기 (배포까지..???) 정도 입니다. 인턴 지원까지 약 한달😔이 남은 상태라 최대한 빠르고&포폴에 더 도움되는 걸 해야 하는 상황입니당.. 물론 새 프로젝트를 처음부터 백엔드로 시작하는 게 나을 것 같기도 한데 요즘 백엔드 초보자는 참여할 프젝 구하기도 힘들더라구요... 그래서 저 같은 초보자(?)분들 모아서 한달 빠짝으로 가벼운 프로젝트를 진행해서 포폴에 넣는 걸 생각 중인데 뭐가 더 도움될까요?? 둥다 괜찮은 선택지라면 둘다 동시에 하는 것도 생각 중이긴 한데,, 저 두 활동이 포폴에 도움이 될까요,,,?? 특히 1번이요!!ㅜ 완성도는 쌩으로 다시 시작하는 2번보다야 높을 것 같긴 한데 저 활동 자체가 도움더ㅣㄹ지 잘 모르겠어서요ㅜ
투표
개발자
#포트폴리오
#인턴
#신입
#프로젝트
답변 1
댓글 0
조회 253
3달 전 · 영훈 님의 새로운 댓글
로컬스토리지 데이터 변환 감지
리액트에서 로컬스토리지에 데이터가 변환되는걸 감지하여 쿼리 데이터를 무효화하고 싶은데, 좋은 방법이 있나요,,
개발자
#로컬스토리지
#리액트
답변 1
댓글 1
조회 70
4달 전 · 익명 님의 질문
파이참 코딩 질문입니다.
import pandas as pd import pyautogui score_A = 0 #쾌락 score_B = 0 #사회적환경 score_C = 0 #보복심리 score_D = 0 #B와C가 점수가 같을때를 위해 만듦. question1 = pyautogui.prompt('난 가정 폭력을 당한적 있다.') #질문1 if question1 == "o": #만약 질문1에 맞다고 대답 한다면 score_B += 1 #사회적환경에 1점 추가 score_C += 1 #보복심리에 1점추가 question2 = pyautogui.prompt('난 학교 폭력을 당한적 있다.') #질문2 if question2 == "o": #만약 질문2에 맞다고 대답한다면 score_B += 1 #사회적환경에 1점추가 score_C += 1 #보복심리에 1점추가 question3 = pyautogui.prompt('난 여아가 이성적 으로 좋다.') #질문3 if question3 == "o": #만약 질문3에 맞다고 대답한다면 score_A += 1 #쾌락에 1점추가 question4 = pyautogui.prompt('난 살인을 할때 쾌락을 느낀다.') #질문4 if question4 == "o": #만약 질문4에 맞다고 대답한다면 score_A += 1 #쾌락에 1점추가 question5 = pyautogui.prompt('나의 범죄는 충동적 이였다.') #질문5 if question5 == "o": score_A ++ 0 #딱히 아무 일 없음 question6 = pyautogui.prompt('난 반 사회적 인격 장애를 진단 받은적 있다.') #질문6 if question6 == "o": #질문6에 맞다고 대답한다면 score_A += 1 #쾌락에 1점추가 score_C += 1 #사회적환경에 1점추가 question7 = pyautogui.prompt('나의 인간관계는 좋지않다.') #질문7 if question7 == "o": #질문7에 맞다고 대답한다면 score_B += 1 #사회적환경에 1점추가 question8 = pyautogui.prompt('난 예전에 아동범죄 피해자였다.') #질문8 if question8 == "o": #만약 질문10에 맞다고 대답한다면 score_C += 1 #보복심리에 1점추가 question9 = pyautogui.prompt('나의 범죄는 계획적이였다.') #질문9 answer_list = [] #질문리스트 answer_list.append(question1) #질문리스트에 질문1~9를 추가하는것. answer_list.append(question2) # answer_list.append(question3) # answer_list.append(question4) # answer_list.append(question5) # answer_list.append(question6) # answer_list.append(question7) # answer_list.append(question8) # answer_list.append(question9) # print(answer_list) #질문리스트를 보여지게함 survey_dict= {'문항번호': [1,2,3,4,5,6,7,8,9], '내용': answer_list, } survey_df = pd.DataFrame(survey_dict).set_index("문항번호") #위의 survey_dict을 데이터프레임 형태로 변환. print(survey_df) #데이터프레임으로 변환한 survey_dict를 출력 if score_B == score_C: #만약 사회적환경과 보복심리의 점수가 같다면 score_D += 10 #스코어D에 점수 10점 추가 score_dict = {'A': score_A, 'B': score_B, 'C': score_C, 'D': score_D} #각각의 점수를 딕셔너리(dict)로 저장함. max_score = max(score_dict.values()) #딕셔너리값중 최댓값을 찾아냄. if max_score == score_A: #만약 최댓값이A라면 아래 문장을 출력 print("설문자는 단순한 쾌락을 위해 범죄를 저질렀을것으로 추정됩니다.") if max_score == score_B: #만약 최댓값이 B라면 아래 문장을 출력 print("설문자는 사회적인 환경으로 인해 범죄를 저질렀을것으로 추정됩니다.") if max_score == score_C: #만약 최댓값이 C라면 아래 문장을 출력 print("설문자는 어릴적환경으로 인한 보복심리때문에 범죄를 저질렀을것으로 추정됩니다.") if max_score == score_D: #만약 최댓값이 D라면 아래문장을 출력 print("설문자는 현재의 사회적환경과 어릴적환경으로 인한 보복심리로 인해 범죄를 저질렀을것으로 추정됩니다.") if question9 == "o": #질문9에 맞다고 대답했을때 if question5 == "o": #질문5에도 맞다고 대답한다면 print("설문자가 솔직하게 문항에 답하고있지 않습니다.") #설문자가 제대로 설문에 응하고 있지 않다고 판단. 라는 코드에서 pandas가 어떤 영향을 줬을까요?
개발자
#코딩
#파이참
#pandas
답변 0
댓글 0
조회 18
4달 전 · 성희 님의 질문
파이참 코딩 관련 질문
import pandas as pd #데이터를 쉽고 효율적으로 처리하기 위해 사용하는 라이브러리 import pyautogui #GUI automation 라이브러리로, 마우스 클릭, 키보드 입력 등의 작업을 자동화하는데 사용 score_A = 0 #쾌락 score_B = 0 #사회적환경 score_C = 0 #보복심리 score_D = 0 #B와C가 점수가 같을때를 위해 만듦. question1 = pyautogui.prompt('난 가정 폭력을 당한적 있다.') #질문1 if question1 == "o": #만약 질문1에 맞다고 대답 한다면 score_B += 1 #사회적환경에 1점 추가 score_C += 1 #보복심리에 1점추가 question2 = pyautogui.prompt('난 학교 폭력을 당한적 있다.') #질문2 if question2 == "o": #만약 질문2에 맞다고 대답한다면 score_B += 1 #사회적환경에 1점추가 score_C += 1 #보복심리에 1점추가 question3 = pyautogui.prompt('난 여아가 이성적 으로 좋다.') #질문3 if question3 == "o": #만약 질문3에 맞다고 대답한다면 score_A += 1 #쾌락에 1점추가 question4 = pyautogui.prompt('난 살인을 할때 쾌락을 느낀다.') #질문4 if question4 == "o": #만약 질문4에 맞다고 대답한다면 score_A += 1 #쾌락에 1점추가 question5 = pyautogui.prompt('나의 범죄는 충동적 이였다.') #질문5 if question5 == "o": score_A ++ 0 #딱히 아무 일 없음 question6 = pyautogui.prompt('난 반 사회적 인격 장애를 진단 받은적 있다.') #질문6 if question6 == "o": #질문6에 맞다고 대답한다면 score_A += 1 #쾌락에 1점추가 score_C += 1 #사회적환경에 1점추가 question7 = pyautogui.prompt('나의 인간관계는 좋지않다.') #질문7 if question7 == "o": #질문7에 맞다고 대답한다면 score_B += 1 #사회적환경에 1점추가 question8 = pyautogui.prompt('난 예전에 아동범죄 피해자였다.') #질문8 if question8 == "o": #만약 질문10에 맞다고 대답한다면 score_C += 1 #보복심리에 1점추가 question9 = pyautogui.prompt('나의 범죄는 계획적이였다.') #질문9 answer_list = [] #답변리스트 answer_list.append(question1) #답변리스트에 질문1~9를 추가하는것. answer_list.append(question2) # answer_list.append(question3) # answer_list.append(question4) # answer_list.append(question5) # answer_list.append(question6) # answer_list.append(question7) # answer_list.append(question8) # answer_list.append(question9) # print(answer_list) #질문리스트를 보여지게함 survey_dict= {'문항번호': [1,2,3,4,5,6,7,8,9], '내용': answer_list, } survey_df = pd.DataFrame(survey_dict).set_index("문항번호") #위의 survey_dict을 데이터프레임 형태로 변환. print(survey_df) #데이터프레임으로 변환한 survey_dict를 출력 if score_B == score_C: #만약 사회적환경과 보복심리의 점수가 같다면 score_D += 10 #스코어D에 점수 10점 추가 score_dict = {'A': score_A, 'B': score_B, 'C': score_C, 'D': score_D} #각각의 점수를 딕셔너리(dict)로 저장함. max_score = max(score_dict.values()) #딕셔너리값중 최댓값을 찾아냄. if max_score == score_A: #만약 최댓값이A라면 아래 문장을 출력 print("설문자는 단순한 쾌락을 위해 범죄를 저질렀을것으로 추정됩니다.") if max_score == score_B: #만약 최댓값이 B라면 아래 문장을 출력 print("설문자는 사회적인 환경으로 인해 범죄를 저질렀을것으로 추정됩니다.") if max_score == score_C: #만약 최댓값이 C라면 아래 문장을 출력 print("설문자는 어릴적환경으로 인한 보복심리때문에 범죄를 저질렀을것으로 추정됩니다.") if max_score == score_D: #만약 최댓값이 D라면 아래문장을 출력 print("설문자는 현재의 사회적환경과 어릴적환경으로 인한 보복심리로 인해 범죄를 저질렀을것으로 추정됩니다.") if question9 == "o": #질문9에 맞다고 대답했을때 if question5 == "o": #질문5에도 맞다고 대답한다면 print("설문자가 솔직하게 문항에 답하고있지 않습니다.") #설문자가 제대로 설문에 응하고 있지 않다고 판단. 여기서 score_dict = {'A': score_A, 'B': score_B, 'C': score_C, 'D': score_D} 가 하는 역할은 무엇일까요?
개발자
#코딩
#역할
#파이참
#파이썬
답변 0
댓글 0
조회 21
4달 전 · 익명 님의 질문
파이참 코딩 관련 질문
import pandas as pd #데이터를 쉽고 효율적으로 처리하기 위해 사용하는 라이브러리 import pyautogui #GUI automation 라이브러리로, 마우스 클릭, 키보드 입력 등의 작업을 자동화하는데 사용 score_A = 0 #쾌락 score_B = 0 #사회적환경 score_C = 0 #보복심리 score_D = 0 #B와C가 점수가 같을때를 위해 만듦. question1 = pyautogui.prompt('난 가정 폭력을 당한적 있다.') #질문1 if question1 == "o": #만약 질문1에 맞다고 대답 한다면 score_B += 1 #사회적환경에 1점 추가 score_C += 1 #보복심리에 1점추가 question2 = pyautogui.prompt('난 학교 폭력을 당한적 있다.') #질문2 if question2 == "o": #만약 질문2에 맞다고 대답한다면 score_B += 1 #사회적환경에 1점추가 score_C += 1 #보복심리에 1점추가 question3 = pyautogui.prompt('난 여아가 이성적 으로 좋다.') #질문3 if question3 == "o": #만약 질문3에 맞다고 대답한다면 score_A += 1 #쾌락에 1점추가 question4 = pyautogui.prompt('난 살인을 할때 쾌락을 느낀다.') #질문4 if question4 == "o": #만약 질문4에 맞다고 대답한다면 score_A += 1 #쾌락에 1점추가 question5 = pyautogui.prompt('나의 범죄는 충동적 이였다.') #질문5 if question5 == "o": score_A ++ 0 #딱히 아무 일 없음 question6 = pyautogui.prompt('난 반 사회적 인격 장애를 진단 받은적 있다.') #질문6 if question6 == "o": #질문6에 맞다고 대답한다면 score_A += 1 #쾌락에 1점추가 score_C += 1 #사회적환경에 1점추가 question7 = pyautogui.prompt('나의 인간관계는 좋지않다.') #질문7 if question7 == "o": #질문7에 맞다고 대답한다면 score_B += 1 #사회적환경에 1점추가 question8 = pyautogui.prompt('난 예전에 아동범죄 피해자였다.') #질문8 if question8 == "o": #만약 질문10에 맞다고 대답한다면 score_C += 1 #보복심리에 1점추가 question9 = pyautogui.prompt('나의 범죄는 계획적이였다.') #질문9 answer_list = [] #답변리스트 answer_list.append(question1) #답변리스트에 질문1~9를 추가하는것. answer_list.append(question2) # answer_list.append(question3) # answer_list.append(question4) # answer_list.append(question5) # answer_list.append(question6) # answer_list.append(question7) # answer_list.append(question8) # answer_list.append(question9) # print(answer_list) #질문리스트를 보여지게함 survey_dict= {'문항번호': [1,2,3,4,5,6,7,8,9], '내용': answer_list, } survey_df = pd.DataFrame(survey_dict).set_index("문항번호") #위의 survey_dict을 데이터프레임 형태로 변환. print(survey_df) #데이터프레임으로 변환한 survey_dict를 출력 if score_B == score_C: #만약 사회적환경과 보복심리의 점수가 같다면 score_D += 10 #스코어D에 점수 10점 추가 score_dict = {'A': score_A, 'B': score_B, 'C': score_C, 'D': score_D} #각각의 점수를 딕셔너리(dict)로 저장함. max_score = max(score_dict.values()) #딕셔너리값중 최댓값을 찾아냄. if max_score == score_A: #만약 최댓값이A라면 아래 문장을 출력 print("설문자는 단순한 쾌락을 위해 범죄를 저질렀을것으로 추정됩니다.") if max_score == score_B: #만약 최댓값이 B라면 아래 문장을 출력 print("설문자는 사회적인 환경으로 인해 범죄를 저질렀을것으로 추정됩니다.") if max_score == score_C: #만약 최댓값이 C라면 아래 문장을 출력 print("설문자는 어릴적환경으로 인한 보복심리때문에 범죄를 저질렀을것으로 추정됩니다.") if max_score == score_D: #만약 최댓값이 D라면 아래문장을 출력 print("설문자는 현재의 사회적환경과 어릴적환경으로 인한 보복심리로 인해 범죄를 저질렀을것으로 추정됩니다.") if question9 == "o": #질문9에 맞다고 대답했을때 if question5 == "o": #질문5에도 맞다고 대답한다면 print("설문자가 솔직하게 문항에 답하고있지 않습니다.") #설문자가 제대로 설문에 응하고 있지 않다고 판단. 에서 survey_dict= {'문항번호': [1,2,3,4,5,6,7,8,9], '내용': answer_list, } 이 어떤 역할을 할까요?
개발자
#코딩
#역할
#파이참
답변 0
댓글 0
조회 14
4달 전 · 문종호 님의 새로운 답변
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
조회 74
5달 전 · 형준 님의 질문 업데이트
프로젝트 경험이 부족한 4학년 전공자 부트캠프를 해야 할까요?
안녕하세요 경기도권 대학 컴퓨터공학과에 재학중인 4학년 학생입니다. 우선 현재 제 상황을 설명해보겠습니다. 프로젝트는 총 두 번 진행했습니다. 첫 번째 프로젝트는 Django와 chatGPT를 이용한 프로젝트이고 전 이 프로젝트에서 기본적인 API 구현, chatGPT 연동 그리고 rabbitMQ와 celery를 이용하여 chatGPT의 답변을 비동기로 가져오는 기능을 구현했습니다. 두 번째 프로젝트는 Springboot와 Flask와 RVC(음성 변환 AI 오픈소스)를 이용한 프로젝트를 진행했습니다. SpringBoot는 REST API를 작성하는 서버이고 Flask는 RVC AI 모델 서빙만을 위한 서버입니다. 이 프로젝트에서 SpringBoot REST API 구현, CRUD 구현과 Flask 서버 구현을 맡아서 진행했고 AWS EC2 배포, S3, RDS, DOCKER(Compose), Nginx, Github Action(CI/CD)도 구현했습니다. 올해 여름 방학에 알고리즘 스터디를 통해서 주요 자료구조와 알고리즘에 대해 공부하고 공부한 내용을 블로그에 정리했습니다. 코테 문제는 대략 100문제 조금 안되게 풀었습니다. 대충 실력은 실버 4~2까지는 어찌저찌 풀 수 있는데 실버 1 골드 5는 쉬운 건 풀고 어려운 건 못 푸는 수준입니다. 현재는 CS 스터디 진행중이고 이제 시작하는 단계입니다. 자격증은 정처기 있고 올해 11월 SQLD 응시 예정입니다. 첫 번째 프로젝트는 포폴로 쓰기 애매하고.. 두 번째 프로젝트는 Devops 경험은 충분한 것 같은데 Spring으로 구현한 기능은 아주 기본적인 REST API밖에 없고 Flask(AI)가 메인이다 보니 제대로 된 Spring 프로젝트가 없습니다.그래서 제대로 된 Spring 프로젝트를 만드는 게 우선이라 생각합니다. 그럼 혼자서 사이드 프로젝트를 하거나 부트캠프에 들어가서 기초부터 차근차근 배운 후 팀 프로젝트를 진행하는 방법이 있는데 어떻게 해야 할지 고민입니다. 부트캠프는 거의 대부분이 기초부터 하는 커리큘럼이다 보니 최소 6개월은 해야 한다는 단점이 있고 혼자 하는 건 주변에 물어볼 곳도 없고 좀 막막합니다. 대신 결과물이 조그 부족하더라도 6개월보단 덜 걸릴 것 같습니다. 조언 부탁드립니다..
개발자
#부트캠프
#국비
#전공자
#취준
#취업
#전공
답변 0
댓글 0
추천해요 1
조회 160
5달 전 · 익명 님의 질문
1시간 안에 네이티브로 웹사이트를 iOS 및 Android용 네이티브 모바일 앱으로 변환하세요.
비즈니스용 모바일 앱을 만드는 데 얼마나 비용이 들까요? 제 경험상, 안드로이드와 iOS 앱을 개발하려면 최소 1만 달러부터 시작합니다. 하지만 한 달에 단 35달러로 모바일 앱을 만들 수 있는 매우 효과적인 방법이 있습니다. 혼자서도 할 수 있고, 팀을 고용할 수도 있는데, 이 방법은 몇 개월이 아닌 며칠 만에, 수천 달러가 아닌 수십 달러로 가능합니다. 제가 말하는 것은 Natively입니다. 이 서비스는 어떤 웹사이트나 웹 애플리케이션도 손쉽게 네이티브 앱으로 변환해 줍니다. 귀하의 웹사이트/웹 앱이 JavaScript 프레임워크로 구축되었든, Bubble, Webflow, Wix, WordPress, Shopify와 같은 노코드 플랫폼을 활용하든, Natively는 모바일 앱으로의 전환을 매끄럽고 간단하게 만들어 줍니다. Natively의 사용은 매우 간편합니다. 사용자 친화적이고 자동화된 프로세스로 인해 기술적 전문 지식 없이도 누구나 몇 분 안에 앱을 만들 수 있습니다. Natively는 푸시 알림, 헬스 키트, 위치 추적, 카메라, 갤러리, 인앱 결제 등 다양한 네이티브 모바일 기능을 설정할 수 있게 해줍니다. 그리고 새로운 기능이 지속적으로 추가되고 있습니다. 1년 전 처음 출시된 이후로 Natively 덕분에 800개 이상의 애플리케이션이 App Store와 Google PlayMarket에서 성공적으로 자리 잡았습니다. Natively의 웹사이트, 리뷰 및 사례는 여기에서 확인하세요: https://www.buildnatively.com/ 오늘날의 디지털 시대에서 네이티브 애플리케이션을 보유하는 것은 사용자를 끌어들이고 유지하는 데 필수적이며, 비즈니스 성장에 큰 도움이 됩니다. 그래서 저는 Natively가 특히 무료로 시작할 수 있다는 점에서 꼭 시도해볼 가치가 있다고 믿습니다. 🌍
개발자
#모바일
#앱
#android
#ios
답변 0
댓글 0
조회 61
6달 전 · 경수 님의 새로운 댓글
신입 프론트엔드 개발자 이력서 피드백 부탁드립니다!
프론트엔드 개발자 직무로 지원하기 위해 이력서를 작성해 보았습니다. 경력자 분들의 따끔한 피드백 부탁드리겠습니다! https://traveling-creek-527.notion.site/tiny-bf-color-838383-7881d64d8bba47a49df376e7ddf8825c pdf로 변환 시 이미지처럼 나옵니다
개발자
#프론트엔드
답변 1
댓글 1
조회 122
6달 전 · 포크코딩 님의 새로운 답변
Aws 로드밸런스를 통해 https로 변환시 오류가 발생합니다.
정말 몇일째 잡고있는데 도저히 실행이 되지 않아, 질문글을 올립니다. 도와주시면 정말 감사드리겠습니다 ㅠㅠ... 현재 상태에 대해서 말씀드리겠습니다. 1. AWS Route 53을 통해서 도메인 구매 2. 도메인과 ec2에서 인스턴스를 생성한 ipv4와 연결 레코드 생성해서 ip주소 3.39.xxx.xx와 도메인 do-prove.com을 연결하는것까지는 확인 3. Aws Certification Manager를 통해서 인증서 발급 완료 4. 대상그룹 생성과 로드밸런스설정 완료 여기까지 한 상태입니다. 스프링을 그대로 사용하여서 8080포트를 사용하였습니다. 대상그룹에서 상태가 정상으로 뜨고, 상태확인이 healthy로 뜹니다. 인스턴스가 정상적으로 실행으로 뜨고, 3.39.xxx.xx:8080으로 접속시 제대로 접속됩니다. 또한 8080포트를 열어두었습니다. 로드밸런서 상태는 정상이고, 리스너는 해당 사진처럼 설정하였습니다. route53 호스팅영역의 아래 레코드 사진을 첨부하였습니다. https://do-prove.com:8080/으로 접속을 하려면 접속이 안됩니다. http://3.39.226.33:8080/으로 인스턴스로 접속하면 이건 또 됩니다. route53호스팅 레코드에서 A dual-stack지우고 do-prove.com으로 하고 3.39.226.33으로 설정해서 http://do-prove.com:8080/으로 접속하는것이 되는건 확인했습니다. 도대체 어디서 잘못되서 연결이 안될까요.. 부탁드립니다 사람하나 살려주세요 ㅠㅠㅠ
개발자
#spring
#aws
#https
답변 1
댓글 0
조회 50
8달 전 · 장성호 님의 새로운 댓글
비트연산관련 질문입니다.
우연히 비트관련해서 끄적이다 발견했습니다. 먼저 0x8000을 2바이트 short(golang에서는 int16)형 변수에 16진수 0x8000(앞에 형변환 넣었습니다.)을 할당 하면 제가 원한 결과인 -32768가 아닌 컴파일러에서는 양수로 인식이 되고 런타임(디버깅 모드, 브레이크 포인트잡고)에선 원하는 결과인 -32768이 반환되는데요 혹시 어떤 이유에서 컴파일러는 오류라 판단하는 건가요? 2의 보수에 의해 이런 결과가 나오는 건가요?
개발자
#질문
#비트연산
답변 1
댓글 2
보충이 필요해요 2
조회 76
8달 전 · 삭제된 사용자 님의 답변 업데이트
안드로이드 개발자 포트폴리오 피드백 부탁드립니다!
안녕하세요 8월 졸업을 앞둔 안드로이드 개발자 취준생입니다! 제가 포트폴리오를 다시 수정해보았는데 무엇을 어떻게 더 바꾸어야하는지 감이 오지 않아서 피드백 부탁드립니다! - pdf 변환 제출을 고려하여 타고 들어가는 형식이 아닌 모든 내용을 나열해서 만들었습니다 - 그 어떤 피드백도 달게 받겠습니다! 포트폴리오 링크: https://petite-coal-c69.notion.site/8b7fae57f95942818f2df1dde09ddf42?pvs=4
개발자
#android
#포트폴리오
답변 2
댓글 0
조회 1,137
9달 전 · glory 님의 새로운 댓글
신입 SI 회사 입사 후 고민
안녕하세요 이번에 서울에 위치한 중소 si 회사에 들어가게 되었습니다. 요즘 개발자 취업이 힘들어서 먼저 경력을 쌓고 서비스기업으로 이직을 하자는 마음으로 일단은 입사를 결정하였고 현재 다니고 있는 상태입니다. 근데 걱정이 크게 3가지 있습니다 si 회사에서 경력을 쌓고 서비스 기업으로 이직하는 게 어려울까요? 회사에 자체 솔루션이 있습니다. 대충 설명하자면 oracle -> mariadb로 데이터를 추출하고 가공하고 변환하는 ETL 관련 제품인 것 같습니다. 하지만 회사 솔루션을 이용해서 프로젝트를 한다던가 솔루션을 크게 지원을 해주는 것 같지는 않습니다 그냥 회사 방향성 때문에 억지로 잡고 있는 느낌입니다. 근데 입사한지 얼마 안 된 제가 그 솔루션을 맡게 되어 현재 조금씩 인수인계를 받고 있는 상황입니다. 회사 내에 본부장님과도 얘기를 하였을 때 회사에서 버리는 카드가 아니니 배우고 싶은 것이 있으면 언제든 말해라 도와주겠다 이런식으로 말씀을 하셨습니다. 제가 원래는 웹/앱 백엔드 쪽으로 방향성을 잡고 있었고 그쪽으로 성장을하고 싶었습니다. 근데 이제 자체 솔루션을 맡게 된다면 어떻게 방향을 맞춰야할지 모르겠습니다. 궁극적으로 저는 서비스기업으로 취직을하고 싶습니다. 지금은 회사에서 리눅스와 데이터베이스 관련해서 교육을 듣고 있는데 방향성을 어떻게 잡고 어디로 가야할 지 잘 모르겠습니다 그리고 서비스 기업으로 갈 수 있을까요..?
개발자
#개발고민
#이직
#방향성
#개발#진로고민
답변 1
댓글 1
조회 515
9달 전 · 으깬감자 님의 질문
UI 디자인 피그마에서 안드로이드앱 Export
안녕하세요. 대학교 3학년 학생입니다. 이번 프로젝트에서 제가 ui/ux 디자인을 맡았고 안드로이드 앱 디자인을 위해 피그마를 활용하려 합니다. 그런데 피그마에서 앱 디자인과 프로토타입 구성을 마친 후, 안드로이드 스튜디오로 코드를 변환할 때 xml로 수동으로 일일이 안드로이드 스튜디오로 붙여넣어야하나요? 아니면 plugin으로 피그마 디자인을 코드(java, xml) 로 바로 변환할 수 있나요? 보편적으로 피그마에서 디자인을 마친 후 어떻게 export하는지 모르겠습니다ㅜㅜ
디자이너
#피그마
#figma
#안드로이드
#안드로이드스튜디오
#uiux
답변 0
댓글 0
조회 476
10달 전 · 포크코딩 님의 새로운 답변
3개의 레이어(?)를 나눠 개발하는거 가능한가요?
안녕하세요 대학교에서 졸프를 하고있는데 주제는 정했고, 이제 어떻게 구현해야할지 그때그때 학습하면서 부딪혀보자 라는 마인드로 하고 있습니다. 본론으로 들어가면 3개의 레이어(?)로 나눠서 하나는 음성을 녹음하는 역할만 수행 다른하나는 음성을 그때그때 텍스트로 변환(TTS) 나머지하나는 음성에 대한 질문 처리 및 대답 반환 이런식으로 역할을 나눠서 그 일만 하게 하고 싶은데 이런식으로 구현이 가능한가요? 어렴풋이 분산시스템, 람다아키텍처 등등을 알아보다가 좀 어려운 것 같아서 해당하는 부분이 구현이 가능한지, 가능하다면 어떤 무엇을 써야할지 (Ex. AWS lambda) 같은 조언 해주실 수 있다면 대단히 감사하겠습니다.
개발자
#분산시스템
답변 1
댓글 0
조회 53
일 년 전 · 민태호 님의 댓글 업데이트
앱(Flutter)에서 JSON데이터를 검색하려고 합니다
안녕하세요 Flutter를 이용하여 식단 및 체성분 관리 앱을 개발 중인 대학생입니다! json형식의 식품영양성분 공공데이터 안에서 사용자가 입력한 식품명 검색어를 기준으로 데이터를 불러오려고 합니다. DB는 Google Firebase를 사용 중이며, 위와 같은 목적으로 데이터를 사용 할 때에 적합하지 않다면 다른 DB를 사용 할 의향도 있습니다. 사용자의 검색어로 시작하는 특정 데이터만이 아니라, 검색어를 "포함"하는 데이터도 불러오고 싶습니다. 현재 어느 정도 그려 본 방법입니다. 영양성분 JSON 다운로드 ↓ Python을 이용하여 필요한 데이터만 가공 ↓ Firebase Realtime Database / Storage에 저장 ↓ 저장된 JSON을 API 호출을 통해 String으로 불러옴 / 앱 내부에 .json 파일로 저장 ↓ Map으로 변환 후 캐싱 ↓ 사용자가 검색어 입력 ↓ 검색어를 포함하는 데이터만 별도 리스트에 추가 여기서 데이터를 불러오는 과정에서 필터링을 거치지 않는 이유는 Firebase Realtime Database에서는 검색어를 "포함"하는 것이 아닌, 사전 순으로 검색어 기준 뒤에 있는 데이터만 가능하다고 합니다.. 그래서 결국 JSON파일로 직접 사용하기로 했습니다 혹시나 저의 부족함이 보이시는 분들의 조언과 피드백을 듣고 싶습니다! 더 나은 방법이 있다면 무차별 폭격 및 질문 부탁드립니다! 미리 감사드립니다 (_ _)
개발자
#json
#flutter
#query
#쿼리
#data
답변 1
댓글 1
조회 111
일 년 전 · 포크코딩 님의 새로운 답변
손실 압축 과정에서 미적분의 활용
PCM으로 아날로그 신호를 디지털 신호로 변환하고 다시 복원하는 과정에서 미적분이 어떻게 적용되는 지 알 수 있을까요? 정적분과 급수의 합 사이의 관계가 양자화에 어떻게 적용될 수 있는지 말해주시면 더 좋을 것 같습니다.
개발자
#미적분
#데이터압축
#손실압축
#pcm
답변 1
댓글 0
보충이 필요해요 1
조회 182
일 년 전 · 익명 님의 질문
템플릿 <<연산자 오버로딩이 궁금합니다.
template<typename E > class Node { public: Node() : next(nullptr), prev(nullptr) {} bool operator<(Node N) { return N.data < data; } bool operator>(Node N) { return N.data > data; } template<typename E> friend ostream& operator<<(ostream& os, const Node<E>& N) { os << N.data; return os; } private: E data; Node<E>* next; Node<E>* prev; friend class LinkedList<E>; }; 다른print 함수{cout<<Node객체.data} 이렇게 E타입의 data를 <<로 출력해야 하는데 [ C2679 이항 '<<': 오른쪽 피연산자로 'const E' 형식을 사용하는 연산자가 없거나 허용되는 변환이 없습니다. ] 자꾸 위와 같은 오류가 뜹니다... 그래서 template<typename E>를 연산자 오버로딩 앞에 붙여봐도 [ C2995 'std::ostream &operator <<(std::ostream &,const Node<E> &)': 함수 템플릿이 이미 정의되었습니다. ] 이런 오류가 발생하구요. 템플릿 타입을 <<로 어떻게 출력하나요??
개발자
#c++
#템플릿
#오버로딩
답변 0
댓글 0
보충이 필요해요 1
조회 60
24일 전 · 나다나가나 님의 답변 업데이트
너무 멍청하고 재능이 없는 것 같습니다
먼저 눈살 찌푸려지게 만드는 제목 죄송합니다. 이래야 많은 분들이 보러 와주실 것 같아서 이런 식으로 작성하였습니다. 안녕하세요. 현재 소프트웨어학과를 재학 중인 2학년 학부생입니다. 저는 1학년 남들이 열심히 살아갈 때 혼자서 아무것도 안 하고 그냥 숨만 쉬고 살았습니다. 그러다 문득 생각이 들었습니다. '이렇게 해서는 안 되겠다. 나를 갉아먹는 것 밖에 되지 않는다.'라고 판단하여 바로 군대를 다녀오고 2학년에 복학해서 전공을 들으며 어찌저찌 다니고 있습니다. 근데 이제 1학년 때 아무것도 하질 않아서 기본적인 개념 조차 모르니 1학년 전공 지식을 알고있을 것이라는 전제 하에 진행하는 수학 관련 전공들은 따라가기 급급하며 프로그래밍 언어는 기본적인 자료형 조차 까먹은 완전 노베이스입니다. 그래서 공부를 시작했습니다. 어떻게 해야할지도 감도 안 오고, 책을 보며 공부를 해봤는데 저에겐 맞지 않아서 그냥 무작정 백준- solved.ac를 연결해서 class 문제에 머리를 들이박아 헤딩 중에 있습니다. 근데 여기서 제 문제점이 나옵니다. 사람들은 잘 푸는 것 같은데, 항상 기본적인 부분에서 실수를 합니다. 이차원 리스트를 정렬할 때, 정렬하고자 하는 값을 int 변환 없이 바로 str인 상태로 정렬을 시키고 어디서 잘 못 되었는지를 모른다거나, 또, 클래스 1 문제를 다 풀고 클래스 2로 들어오니까 한 문제 한 문제를 해결할 때 너무 많은 시간이 듭니다. 당장 이항 계수를 구하는 코딩을 작성하는 문제, 요세푸스의 순열 문제, 계수 정렬로 정렬하는 문제, 순열 문제를 해결하기 위한 완전 탐색 등등 다양하고 처음 보는 개념들이 많이 나옵니다. 그래서 문제를 해결하려고 막상 부딪혀보면 해당 내용들을 알지 못하면 저는 절대 해결하지 못하더군요. 그리고 이제 파이썬과 C++을 배우며 파이썬으로 백준을 풀어나가는 중인데, 또 다시 C++로 백준을 풀라고 하면 똑같이 헤맬 것 같습니다. 아니 그냥 당장 4일 걸려서 도달했던 실버 직전 문제들을 풀라고 하면 다시 머리 싸매면서 힘들어할 것 같습니다. 이게 맞는 걸까요? 추가적인 질문으로, 백준 티어가 높으면 실무에서 많이 도움이 되나요? 이제 막 시작해서 실버5 밖에 되지 않아 높은 분들의 세계를 동경하기만 하는 중이라 한 번 여쭤봅니다. 마지막 질문으로, 친구들이랑 장난감 만들듯이 진행하는 소규모 프로젝트라고도 하기 애매한 웹페이지 제작을 하고 있는데요. 컨셉이나 주제 등을 정하기도 어려워서 그냥 무작정 제공해주는 지도 api를 가져올 수 있는 웹페이지를 하나 만들어보자! 부분만 집중하고 있습니다. 리액트와 next.js를 공부해서 열정적으로 공부하면 js언어를 빠르게 습득할 수 있을까요? 또, 백엔드는 어떻게 쌓아올려야하는 걸까요? 모르는 게 너무 많은 것 같습니다 휴.. - 3줄 요약- 1. 1학년 때 놀아서 2학년인 지금 따라가기 너무 벅찹니다. 그래서 무작정 감을 익혀보고자 백준을 풀고 있는데 이것조차 이제 모르는 개념이 나오면 한 개념 이해하는데 몇 시간씩 소모하고 그럽니다. 이게 맞는 걸까요? 2. 백준 티어가 높으면 실무에서 도움이 되나요? 3. 웹페이지 제작 같은 경우에는 아무것도 모르는 노베이스 상태로 시작해도 괜찮을까요? 리액트와 next.js를 이제 막 배우고 있습니다. 그리고 백엔드는 언제 접목시키는 건가요? 다른 분들이 하시는 멋진 고민들- 실무에서의 실수, 개발자의 미래, 자신이 희망하는 진로에 대한 세부적이고 열정있어보이는 질문-에 비하면 너무나도 수준이 낮아보이는, 그런 질문인 것 같아 죄송하네요. 읽어주셔서 감사합니다.
개발자
#대학생
#공부고민
#공부법
#react
#백준
답변 7
댓글 11
추천해요 12
조회 3,031
일 년 전 · nowv 님의 새로운 댓글
파일 변환 및 전송에 대한 질문입니다.
영상파일을 서버 - aws s3로 저장하는 로직을 구현중입니다. 서버단에서 영상파일에 대한 편집작업을 한 다음 s3에 원본과 같이 저장시키는 것이 계획이었습니다. 서버에서 ffmpeg, fluent-ffmpeg를 이용한 변환작업은 다음과 같습니다. - 영상 watermark 작업 - hls를 위한 .m3u8파일 변환 작업 - 썸네일 생성 작업(.ts파일의 0초대를 썸네일 및 미리보기로 생성)- 이부분은 테스트중입니다. s3 url을 요청하여 영상파일을 실행시키는 계획을 생각했고 이는 로컬에서 성공했습니다. ec2서버에 배포한다음 위 과정을 실행해보니 변환과정에서 서버단 부하가 너무 심해서 변환하는 시간이 너무길거나 서버가 다운되는 이슈가 생겼습니다. ec2성능 자체를 올리고 업로드 용량 제한도 다시 설정할 계획이나 여전히 많은 유저가 이 기능을 사용할 경우 서버가 견디지 못할 가능성이 있다고 생각합니다. 지금 생각해보고 있는 대안은 두가지입니다. 대안 1: aws mediaConverter를 이용해 변환한다. 1. 원본 영상을 버킷a로 보낸다. 2. 람다 트리거를 이용해 aws mediaConverter로 변환요청을 보낸다. 3. 변환한 영상을 버킷 b에 저장한다. 4. 클라이언트에서 버킷 b에서 cloudFront를 통해 요청한다. 대안 2: 업로드 전용 ec2를 생성하여 따로 변환한다.(처음 계획했던 과정에 ec2를 새로 생성, 성능 고도화하기) mediaConverter의 영상변환에 필요한 작업 생성(또는 작업 프리셋 생성)이 너무 어려웠던 기억이 있어 ffmpeg를 이용할 생각을 하였는데 영상변환에 너무 많은 리소스가 들어간다는 생각을 못했습니다. 영상 변환 및 업로드 작업을 경험해본 분들이 있다면 좋은 공유를 받고싶습니다.
개발자
#aws
#ffmpeg
#mediaconverter
#m3u8
#backend
답변 1
댓글 1
조회 83
일 년 전 · 박정환 님의 댓글 업데이트
지도 기반 프로젝트 질문 드립니다
안녕하세요! 백엔드 취준생입니다 현재 지도 기반으로 사진 장소를 기록하고 추천하는 프로젝트를 만들고 있는데 질문 좀 받아주시면 감사하겠습니다 ㅠㅠ (프론트는 Flutter, 백엔드는 스프링 부트와 Mysql을 사용중입니다) 현재 사용자가 사진을 올리면 사진의 좌표 정보를 지도 서비스 제공자(카카오, 네이버 등)를 통해 특정 장소의 좌표, 주소로 변환하고 있습니다 같은 장소라도 사진의 좌표가 조금씩 다르기 때문에 대표 좌표로 사진들을 모아서 보여주기 위해 이렇게 했습니다 그런데 이렇게 하면 사진을 업로드 할때마다 외부 API를 호출해야 하고 의존성이 너무 높은 것 같아서 다른 방법을 생각하고 있습니다..! 제가 생각한 방법은 사진 좌표에 가장 인접한 좌표의 장소를 DB에서 1차적으로 조회해서 사용자에게 해당 장소에 등록할지 물어본 후 외부 API를 호출하는 방법이 있습니다 혹시 다른 좋은 방법이나 조언 좀 해주시면 정말 감사하겠습니다!
개발자
#spring-boot
#mysql
#spring
답변 4
댓글 5
추천해요 1
조회 606
일 년 전 · 다혜 님의 질문
POST Body 가 간헐적으로 잘려서 들어옵니다.
App (react-native) 에서 RNFS 로 여러장의 이미지를 base64로 변환하여 post body 에 넣어 요청을 보냅니다. 하지만 간헐적으로 서버 (spring boot) 에서 post body 가 잘려서 들어오고 EXCEPTION : org.springframework.http.converter.HttpMessageNotReadableException ERROR MESSAGE : JSON parse error: java.io.EOFException 아래와 같은 에러가 발생합니다. 동일 이미지들을 다시 base64로 변환하여 요청하면 대부분 성공합니다. 어떤 문제일까요? spring boot yml 에는 아래와 같이 설정해두었습니다. server: port: tomcat: connection-timeout: 1800000 max-http-post-size: 100MB max-swallow-size: 100MB threads: max:
개발자
#react-native
#spring-boot
답변 0
댓글 0
추천해요 1
보충이 필요해요 1
조회 129
일 년 전 · 강병진 님의 답변 업데이트
flutter 플러터 알림 기능
flutter_local_notifications를 사용해서 알림 기능을 구현하고 있는데, 함수는 작동하는데 알림이 안뜹니다. 권한도 설정했고 로컬 설정도 서울로 확인했는데, 시간 변환이 문제인 건지 온갖 걸 다해봐도 알림이 뜨지 않습니다. 며칠을 붙잡고 있는데 검토 한 번만 부탁드리겠습니다..
개발자
#플러터
#flutter
#알림
답변 1
댓글 0
조회 207
10달 전 · 정주영 님의 답변 업데이트
SSR을 사용하지 않는 next.js 앱의 장점은 뭐가 있나요?
SSR을 사용해 next.js 앱을 만들었는데 서버 컴포넌트쪽 인증을 처리하지 못해 전체 앱을 CSR로 전환하자는 의견이 나왔습니다. SEO도 필요하지 않은 앱이라 SSR을 사용하지 않으면 라우팅을 제외하곤 next.js의 어떤 장점을 살릴 수 있는지 잘 모르겠습니다. SSR을 적용한 컴포넌트를 CSR로 전환할바에 앱을 리액트로 변환하는게 프론트 서버를 신경써야하는 단점도 없어질 것 같고 시간도 비슷할거 같아서요. 추가적으로 only CSR로 next.js 사용하시는 분도 계실까요?
개발자
#react
#next.js
답변 2
댓글 0
추천해요 8
보충이 필요해요 1
조회 1,686
일 년 전 · 펭귄님 님의 새로운 답변
신입 개발자 프로젝트 경험 도움될까요?
안녕하세요 저는 머신러닝 엔지니어로 소규모 스타트업에서 1년째 재직 중입니다. 현재 저는 백엔드 엔지니어로 커리어 전환을 하려고 준비중에 있습니다. 현재 회사 문제로 시니어도 없는 상태이고 백엔드 공부를 개인적으로 퇴근 후 하고 있는 상태입니다. 회사의 솔루션은 웹 서비스가 아니지만 현재 외부 업체를 통해서 웹 서비스로 변환을 준비 중입니다. 저도 퇴사보다는 회사에서 할 수 있는걸 다 해보자는 마음으로 면담하여 백엔드 공부를 하고 앞으로 백엔드 쪽 개발을 해보자고 허가 받은 상태입니다. 회사에 백오피스 서비스가 하나도 없는 상태라 운영하는 서비스 보다 부담이 떨어지는 백오피스 개발 부터 차근차근 하고싶다고 하여 승인을 받았습니다. 운용하는 AI 모델로 쌓이는 분석 데이터, 센서 데이터를 시각화하고 운영하는 사업장별 데이터를 한눈에 확인하는 대시보드와 같은 서비스를 개발해보려고 합니다. 시니어가 없어 외부 멘토를 통해서 개발 과정을 피드백 받으면서 진행할 것으로 예상되는 상황입니다. 제가 할 수 있는 프로젝트를 진행하고 더 개발문화가 잘 정착된 규모있는 기업으로 이직을 하고싶습니다. 제가 말씀드린 프로젝트 이후 중고신입으로 여러 회사로 이직을 시도하려고 하는데 이런 프로젝트 경험도 다 도움이 되는 걸까요?
개발자
#백엔드
#주니어개발자
#백오피스
답변 1
댓글 0
조회 171
4달 전 · 유하성 님의 새로운 댓글
신입 개발자를 위한 회사는없다
빠른 도움을 받을수 있을까 싶어 제목을 조금 자극적으로 지어 봤습니다 😀 하지만 이력서을 지원하면서 느낀 생각이기도 합니다ㅠ 새로운 채용공고를 찾는데도 어려움을 느끼고 있습니다 한번의 서류합격없이 수십번의 이력서 탈락후 조금 좌절감에 빠져있는 상태인데요 이력서에 문제가 있을거라고 생각은 하지만 조언을 해주시는 분마다 의견이 다르고 또 서류 합불을 지표삼아 수정을 해보기에도 서류 합격률이 0퍼센트이니 수정포인트를 잡는데도 어려움이 있습니다 그래서 이것은 둘째문제로 치고.. 대부분의 공고에 300~2000명의 지원자가 몰리는 광경과 서류열람 알림 5초후에 불합격 알림을 받고나서 내린 결론은 서류합격을 기대하는건 다른때보다 운이 크게 작용하고 있다는 건방진 생각을 해봤습니다. 매력적인 이력서를 작성하는것도 능력이겠지만 2000명의 이력서가 한장씩만 된다고 해도 백과사전 두깨의 분량일텐데 검토 하시는분의 읽는시점의 컨디션, 주변환경이 어수선한지 차분한지의 다소 운적인 요소가 분명히 있을수밖에 없다 생각이 되고 다른때보다 심할것 이라고도 생각됩니다 그래서 혹시 이력서 외에 면접기회를 가질수 있는 활동이 있을까 싶어 질문드립니다 코딩테스트 플랫폼의 챌린지나 해커톤, 컨퍼런스참석 정도를 생각해봤는데 하고싶을때 할 수 있는것이 아니고 마땅한 커뮤니티활동을 찾는데 어려움을 느끼고 있어서 조언을 구하고자 질문드립니다 속이 새까매진 느낌이라 속이라도좀 풀겸 푸념도 하고, 이자식 요행부릴 생각만하네~ 라고 느끼실수 있겠다는 생각에 변명도 하다보니 질문이 길어졌습니다 이력서 외에 면접기회를 가질수있는 활동은 어떤것이 있을까요? 아니면 제가 놓치고있는 무언가가 있을까요? 가여운 신입 개발자의 고충을 덜어주세요 선배님들!
개발자
#java
#spring
#취업
답변 7
댓글 4
추천해요 23
조회 3,160
일 년 전 · 다형 님의 답변 업데이트
데이터 join후 어디에 담으시나요?
안녕하세요 join한 결과를 repository를 통해 받아올때 다들 어떻게 하시나요?? 어떤 방법을 써야 하는지 모르겠어서 선배님들의 의견과 다른 회사에서는 어떻게 하는지 알고 싶어서 질문 드립니다~ 제가 알기로는 domain은 db테이블과 1대1관계를 가져야 한다?, dto는 request와 response시에만 사용하는것? 으로 알고 있습니다 Mybatis를 통해 두 테이블을 join할때 (예를 들어 게시판 상세페이지에 접속할때 게시판테이블의 정보와 업로드된 파일을 관리하는 테이블의 데이터를 함께 조회함) 그 데이터를 어디에 담아서 repository를 통해 리턴하면 될까요..? 게시판 domain에 파일 정보를 추가해서 조인한 데이터를 담자니 domain이 db와 1대 1관계를 깨는것 같고 dto에 바로 담자니 dto와 domain의 변환 시점이 있는데 규약(?)을 무시하는것 같고 브릿지 테이블을 만드는것도 아닌것 같고.. 회사에서도 여쭤볼 분이 마땅치 않아서 궁금증을 여쭤봅니다ㅜㅜㅜㅜ
개발자
#join
#dto
#domain
#mybatis
답변 2
댓글 0
조회 248
일 년 전 · MM 님의 답변 업데이트
3년 반이 넘은 물경력 같은 백엔드? 엔지니어의 이직 및 공부 고민
스타트업이라 사수 없이 시작했습니다. 초반에는 AI 논문에 달린 github에서 모델 + 코드 다운 받아서 돌려보고 그거 괜찮은가 그러다가 중간에 데이터 수집을 위한 툴을 PyQT로도 만들어보기도 했고 그러다가 팀을 나눠진 후로 2년차부터 주로 하게 된 일은 괜찮은 것 같은 AI 모델이 넘어오면 그 모델을 onnx, tensorrt로 변환 해보기도 하고 변환 되었다면 API로 사용할 수 있도록 Triton 서버에 모델을 넣고 그 API를 Celery + FastAPI와 연동 시킨 Docker를 compose로 엮어서 온라인 해주는 역할에 모델 자체를 수정하지 않고 요구에 대응될 수 있도록 전, 후 처리를 코드로 수정을하는 정도입니다. 고작 이정도 해본거 가지고 ML 엔지니어냐? 그러면 ML 쪽은 조금 경험해본 정도에 들여다보니 아직 준비가 한참 남은 것 같고 수학도 잘 모르는것 같고 그렇다고 백엔드 개발자냐 내가 백엔드로 개발자로 가고 싶은건가? ML 엔지니어로 가고 싶은건가 확실하지 않은 상태에 다른 회사 백엔드 엔지니어 기술 스택을 보면 젠킨스니 테라폼이니 들어본적도 없는 스택이 잔뜩 있어서 우물 안 개구리 같아 자신있게 말 할 수 있는지는 모르겠습니다. 왜 이런 고민을 하게 되는지 좀 생각해보니까 제가 AI 기술의 발달 과정을 보면서 그 기술들에 관심있고 흥미가 있는데 하고 있는 일은 백엔드고 ML쪽을 제대로 파려고 해도 힘이 많이 들어서 그런가 싶기도 합니다 이직하려고 채용 공고들을 보고 있자니 내가 뭘 할 수 있지? 어떤 포지션에 들어갈 수 있지? 내 기술스택이 어떻지? 컴퓨터공학 석사가 있긴 한데 내가 석사? 라는 자신도 없는 상태에 지금 하고 있는 일의 코드 전체를 보면 특히 FastAPI나 Celery를 이걸 내가 맨땅에서 다시 구현할 수 있을까? 막막함이 들기도 합니다. 아마도 누가 만들어놓은걸 저는 수정해가면서만 사용해봐서 그럴 것 같습니다. 갑자기 왜 이직을 생각하게 되었냐면 22년까진 20명이던 개발팀이 5명으로 줄은 상태로 회사가 텅텅 비다보니 나태하게 지내다가 이제서야 위기감을 느끼게 된 것 같습니다. 생각하다보니 막막한 느낌에 글을 써봤습니다.
개발자
#이직고민
#백엔드
#ml
#회사
#ml-engineer
답변 5
댓글 5
추천해요 11
조회 2,689
일 년 전 · 박종국 님의 새로운 댓글
하나의 API당 하나의 DTO를 만들어야 하나요?
백엔드를 공부중인 학생입니다. 최근 NEST와 SPRING으로 공부중입니다. DB에서 데이터를 받아올때 프런트엔드에 전송하는데 테이블에 있는 모든 데이터를 보내는 것이 아닌 특정 속성만 뽑아서 보내주기 위해 DTO를 사용하고 있습니다. 이때 하나의 API당 하나의 DTO를 만드는게 일반적인가요? 연관관계가 성립된 Entity는 어떻게 Entity에 변환하는지도 궁금합니다. dto.dto_id = entity.entity_id 이런식으로 변환을 하나요? 아니면 다른 방법이 있나요? 현업에서는 어떻게 하는지 궁금합니다. 감사합니다!
개발자
#nest.js
#springboot
답변 1
댓글 1
추천해요 1
조회 393
일 년 전 · 백승훈 님의 답변 업데이트
자바에서 데이터를 가져와서 작성후 PDF 파일로 변환해서 메일을 보내는 방법
데이터 베이스에서 조회한 정보를 자바 코드로 내용을 채워 만들고 그걸 PDF로 변환해서 메일을 보내는 방법에대해서 궁금합니다. 라이브러리 사용인가요? 아니면 정말 코드로 다 처내야 하는건지요... 계속 검색은 해보면서 여기에도 글 남겨봅니다 도와주세요
개발자
#java
답변 1
댓글 0
조회 216