#char

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

2달 전 · 이주은 님의 답변 업데이트

여러분은 char를 어떻게 읽으시나요?

int를 인트라고 읽는건 별생각 없었는데 대화하다가 육성으로 차르라고하는걸 듣고나서 문득 궁금해졌습니다.

투표

개발자

#char

답변 1

댓글 0

보충이 필요해요 1

조회 815

3달 전 · aigoia 님의 답변 업데이트

이직 시 단독 작업한게 걸림돌이 될까요?

프론트엔드 3년차 입니다. 디자이너,백엔드 개발자와 작업은 같이 했지만 프론트엔드 파트는 혼자 전부 진행하였습니다. 회사에서 보낸 시간이 너무 많아서 1년반정도가 인생에서 사라진 느낌이 들 정도였습니다. 그동안 트러블 슈팅, 혼자서 해결한 문제들이 너무 많아서 그런것들 보단 ( 알고보면 단순한 내용들이거나 시니어가 있었다면 금방 해결될 문제들입니다. ) 어려운 전제조건 하에 개발한 기능, 수치적으로 표현 가능한 기능에 대해서 이력서에 기입했습니다 허나 기입한 기능들 자체가 글로 적으면 대단해 보이지가 않는다는게 문제입니다. 오히려 단독으로 했다고 하면 과장해서 적어놓은 사기꾼같아보일까봐 걱정입니다. 이력서에 적힌걸 보면 정렬,최적화,구조 변경 이런것들이거든요... 근대 그것들을 클라이언트 단에서 디자인 패턴까지 쓰지않으면 안될정도의 복잡한 로직을 구현한거긴합니다만 결과 자체는 단순히 필터링 정렬 표기 그런것들입니다.. , 그걸 이력서에 다 기입할 수가 없어서 고민입니다. (react , next를 사용하였습니다) 또한 혼자서 서비스와 백오피스를 다 작성했다보니 효율적으로 수정 가능하게 진행했다, 다른 프로젝트에서 사용하기 용이하게 코드구조를 변경했다. 정도만 적을 수 밖에없었습니다. 어렵기 보단 얼마나 효율적으로 구조를 잡고 진행하냐의 문제였거든요. 이력상으로 봤을때 화려한 기능이나 서비스를 만든건 아니라서 더 더욱 차반 취급받을까봐 고민입니다.. 혼자서 많은 고민과 문제를 해결했지만 3자입장에서 봤을때 전혀 볼게 없는 심각한 상황입니다.. (시간만주면 3d든 스트리밍 chart든 브라우저 api 활용이든 map api든 canvas든 다 금방 배워서 할 자신이 있지만 그런 종류의 작업들은 회사 일로선 전혀 하질 못했습니다.. ) 연봉을 대거 낮춰서 신입 자리라도 지원해야할까요..? 최근엔 회사에서 먹고 자지 않아도 될정도라 알고리즘도 공부하고있고 트러블 슈팅이나 개발하면서 문제해결에 도움되었던 것들을 적으려고 블로그도 만들고 있긴합니다만. 너무나도 부족하고 모자라 보입니다.. 개발 실력도 올랐고 배포,운영 경험도 쌓였지만 작업내용 특성상 죄다 공개를 하지 못하니 어떻게해야할지 고민입니다..

개발자

#프론트엔드

#이직

#이력서

#경력기술서

답변 1

댓글 0

조회 179

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

조회 104

9달 전 · 익명 님의 질문

자바 SMS 일본어 포멧팅문제 질문드립니다.

일본어로 SMS발송을 테스트중입니다. 발송할 내용 템플릿을 작성해놓고, SMS를 발송하고 있습니다. 근데 로그상으로는 문자가 깨지지않는데 발송된 문자를 폰에서 확인하면 중간중간 한자가 ?로 나오는 문자들이 있습니다. 코드는 대략 아래와 같고 message를 그대로 전송합니다. 검색도 해보고 다양하게 테스트 해봤습니다. message = new String(message.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8); 와 같은 식으로도 이것저것 테스트해봤는데 안되네요. 혹시 해결방법이 있을까요?

개발자

#java

#자바

답변 0

댓글 0

조회 24

일 년 전 · 지원 님의 질문

[DB 설계] postreSQL 주소 저장

대학 4학년 재학중이고 현재 스타트업 초기 개발자로 근무를 시작했습니다. 프론트는 flutter, DB는 postresql, 백 프레임워크는 python Django를 이용해 하이브리드 어플리케이션을 개발하고자 합니다. 장소 table을 만들면서 주소 column을 만들어야 하는데, 서울/부산/울산 등 지역별 필터링이 가능하도록 설계해야 합니다. 1. 단순히 textfield 를 하기엔 필터링마다 모든 row의 주소 column에서 해당 단어들을 찾아야 하는 부담이 있고, arrayfield(char)을 하기엔 프론트에서 받아와서 처리하는 것에 어려움이 있을 것 같습니다. 2. 프론트에서 주소 입력하는 형태가 아직 정해지지 않았는데, 아마 도로명 주소 검색해서 선택하고 상세주소를 입력하는 방법을 도입할 것 같습니다. 이 기능을 구현해본 적이 없어 어떤 식으로 DB를 설계하고 입력/저장/출력을 관리하면 좋을지 조언을 구하고 싶습니다. 덧붙여서, 혹시 지도 api 등을 연결해서 주소를 등록하게 되더라도 DB 설계에는 변함이 없는게 맞는건지 궁금합니다. 감사합니다.

개발자

#postgresql

#db설계

#주소

#지도api

답변 0

댓글 0

조회 81

일 년 전 · 프레드윰 님의 새로운 답변

안녕하세요 html,css질문입니다 제발 도와주세요

<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>중경삼림</title> <script src="//code.jquery.com/jquery-3.3.1.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mb.YTPlayer/3.3.1/jquery.mb.YTPlayer.min.js"></script> <script> jQuery( function() { jQuery( '#background' ).YTPlayer(); } ); </script> <link rel="stylesheet" href="style.css"> </head> <body> <div class="jb-box"> <div id="background" class="player" data-property="{ videoURL:'https://www.youtube.com/watch?v=ncT1R2hMpaQ', mute: true, showControls: false, useOnMobile: true, quality: 'highres', containment: 'self', loop: true, autoPlay: true, stopMovieOnBlur: false, startAt: 9.5, opacity: 1 }"></div> </div> <br><br><br> <div id="director"> <br><br><br><br> <h1>왕가위</h1> </div> </body> </html> 이건 html이고, body{ margin: 0; } .jb-box { position: relative; } #background { z-index: -1; } 이건 외부 css파일입니다. 문제는 저 스크립트가 다른 컴퓨터에서 실행했을 때 영상이 재생되지 않는다는 것입니다. '이 동영상은 볼 수 없습니다'로 뜹니다...혹시 저 스크립트에 문제가 있는 것 일까요..?? 도와주시면 정말 감사하겠습니다...

개발자

#html-css-js

#웹디자인

#css

#html

#script

답변 2

댓글 0

조회 91

일 년 전 · 익명 님의 질문 업데이트

COPY(PG) GC 오버헤드 에러

안녕하세요. 대용량의 텍스트 파일을 postgreSql에 적재하는 모듈을 개발하고 있습니다. copy 함수를 활용하여 텍스트 파일('|'으로 구분되어 있는)을 테이블에 insert 하는데 헤더 스킵을 위해 csv로 parsing하려고 합니다. 근데 파일이 커서 그런가(8GB정도) 'OutOfMemoryError : gc overhead limit exceeded' 에러가 계속 발생합니다.. (어떨 땐 에러 없이 잘 들어가기도 합니다) 코드 중에 불필요한 구문이 있는 건지 판단이 잘 안됩니다... 또 csv로 파싱하지 않고 텍스트 파일의 첫째 줄을 지우고 copy로 밀어 넣는 방법이 있을까요? --------구현 코드-------- try ( BaseConnection c = dataSource.getConnection().unwrap(BaseConnection.class)) { try ( PGCopyOutputStream os = new PGCopyOutputStream(c, "COPY " + tableName + " FROM STDIN WITH (FORMAT CSV)"); CSVPrinter writer = new CSVPrinter(new OutputStreamWriter(os, StandardCharsets.UTF_8), CSVFormat.POSTGRESQL_CSV); CSVParser reader = new CSVParser(new InputStreamReader(inputStream, charset), CSVFormat.INFORMIX_UNLOAD.withFirstRecordAsHeader())) { for (CSVRecord row : reader) { for (String col : row) { if (col != null && StringUtils.hasText(col.trim())) { writer.print(col.trim()); } else { writer.print(null); } } writer.println(); } } } *inputStream은 해당 파일 BufferedInputStream 객체입니다.

개발자

#postgresql

#error

답변 1

댓글 1

조회 86

일 년 전 · 강병진 님의 새로운 답변

질문) process finished with exit code2

/Users/사용자명/Desktop/Pycharm/시도1/venv/bin/python /Users/사용자명/Desktop/Pycharm/시도1/hello.py /Library/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python: can't open file '/Users/사용자명/Desktop/Pycharm/시도1/hello.py': [Errno 2] No such file or directory Process finished with exit code 2 .. 파이참을 실행시키려는데 이렇게뜨네요 코딩초보입니다 도와주세요

개발자

#파이참

#파이썬

답변 1

댓글 0

추천해요 1

보충이 필요해요 1

조회 124

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

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

2년 전 · 노원재 님의 질문

WebVR 구현 목적으로 하는 프론트엔드 개발자입니다. 공부순서는 추천해주실게 있으실까요?

안녕하세요. 2년 6개월 강제(?) 풀스택에서 최근 프론트엔드로 진로를 정한 웹 개발자입니다. 목적은 웹퍼블리싱도 되는 프론트엔드 개발자 입니다. 구현하고자 하는 토이프로젝트는 Interactive Web 구현, 최종 목적은 WebVR 구현입니다. CSS -> Response Web -> Interactive Web -> WebVR(three.js) 로 공부를 할까 합니다. 현재는 강의 보며 토이프로젝트(Response Web)을 만들어 보고, 출근하면 배운거 써먹어보고 있습니다. 현재 제 레벨은 CSS 스킬이 Figma 를 봤을때 머리속에서 마크업 잘 안그려지고, CSS 개발에서 자주 멈칫, 구글링합니다. 구현된거 수정만 해보았어서, 코드스타일이 없었고 구현순서나 임시 스타일가이드를 정해서 작성해보고 있습니다. JavaScript 스킬은 custom Api 만들고 api 통신해서 여러 data 가져와서 좀 다양한 chart, table에 결과물 산출(간단한 산술식을 곁들어서) 정도, 로그인, 세션, validate, router, 필요함수 기능구현이나 리팩토링, 모듈화 정도만 해봤습니다. 질의문은 위 상황에서 추천해주시거나 수정해주고 싶으신 부분이 있으시다면 혹은 요런게 있다 더라 만이라도 알려주시면 참 감사드리겠습니다.

개발자

#frontend

#웹퍼블리싱

#3d

#webvr

#프론트엔드

답변 0

댓글 0

조회 73

2년 전 · 박병석 님의 답변 업데이트

C언어 오류 수정 질문

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define NO_STD 5 #define NO_SUB 4 struct ICT { int num; char name[20]; int score[NO_SUB]; int sum; float arg; int no; float total; char grade; }; int main(void) { int i, j; struct ICT std[NO_STD]; for (i = 0; i < NO_STD; i++) { std[i].sum = 0; printf("학번을 입력하세요 :"); scanf_s("%d", &std[i].num); printf("이름을 입력하세요 :"); scanf_s("%s", &std[i].name, sizeof(std[i].name)); for (j = 0; j < NO_SUB; j++) { printf("%d번째 학생의 %d번째 과목 점수를 입력하세요 :", i + 1, j + 1); scanf_s("%d", &std[i].score[j]); std[i].sum += std[i].score[j]; } std[i].arg = (float)std[i].sum / NO_SUB; printf("결석을 입력하세요 :"); scanf_s("%d", &std[i].no); std[i].total = std[i].arg - std[i].no * 0.5; if (std[i].total > 89) { std[i].grade = 'A'; } else if (std[i].total > 79) { std[i].grade = 'B'; } else if (std[i].total > 69) { std[i].grade = 'C'; } else { std[i].grade = 'F'; } } printf("순서\t학번\t이름\t중간\t중간2\t중간3\t중간4\t합계\t평균\t결석\t최종\t학점\n"); for (i = 0; i < NO_STD; i++) { printf("%d\t%d\t%s\t", i + 1, std[i].num, std[i].name); for (j = 0; j < NO_SUB; j++) { printf("%d\t", std[i].score[j]); } printf("%3d\t%.2f\t%d\t%.2f\t%s\n", std[i].sum, std[i].arg, std[i].no, std[i].total, std[i].grade); } } 에서 F11.로 한단계씩 디버그하기를 하면은 다 잘되는데 마지막 printf에서 예외 발생(0x00007FFFCFBAAC87(ucrtbased.dll), 2차중간고사.exe): 0xC0000005: 0xFFFFFFFFFFFFFFFF 위치를 읽는 동안 액세스 위반이 발생했습니다.. 이라고 뜨면서 합계부터 출력이 안됩니다. 이거 혹시 어떻게 해결해야되는지 아시나요....

개발자

#c

#오류

#초보자

답변 2

댓글 1

조회 164

2년 전 · 윪 님의 새로운 댓글

html form태그에서 action속성 오류

html 중에서 <form aciton="/signup" method ="POST">이 부분엔서 /signup부분에 하이퍼링크처럼 줄이 생기고 페이지를 로드했을 때 404오류가 뜨는데 혹시 어떤 부분이 잘못되서 그런지 알 수 있을까요..? 그리고 언더바가 생기는 이유도 알고 싶습니다! 구글링을 해도 제가 원하는 답이 없어서 조언 부탁드립니다 ㅜㅜ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <form action="/signup" method="POST"> <div> <label for="id">아이디</label> <input type="text" id="id" name="id" /> </div> <div> <label for="password">패스워드</label> <input type="text" id="password" name="password" /> </div> <div> <button type="submit">회원가입하기</button> </div> </form> </body> </html>

개발자

#html

#form

#frontend

#action

답변 1

댓글 1

조회 101

2년 전 · 장성호 님의 새로운 답변

mysql 관련오류

0 8 09:46:09 create table week( name varchar(30) not null,-- 일정 이름 start_time time default '10:00:00',-- 시작 시간 end_time time default '16:00:00',-- 끝나는 시간 number tinyint auto_increment primary key, check (start_time<end_time) ) Error Code: 1050. Table 'week' already exists 0.000 sec

개발자

#mysql

답변 1

댓글 0

조회 148

2년 전 · 손호영 님의 질문

mysql 오류가 있어요?

create table week( name varchar(30) not null,-- 일정 이름 start_time time default '10:00:00',-- 시작 시간 end_time time default '16:00:00',-- 끝나는 시간 number tinyint auto_increment primary key check (start_time<end_time) 0 7 09:43:20 create table week( Error Code: 3813. Column check constraint 'week_chk_1' references other column. 0.000 sec

개발자

#mysql

답변 0

댓글 0

보충이 필요해요 1

조회 79

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

조회 63

2년 전 · 오승우 님의 새로운 댓글

리액트 컴포넌트 라이브러리 구현 시 에러

React 스타일 컴포넌트 라이브러리를 제작중입니다. Ts / rollup / yarn berry를 사용했으며 @emotion/styled를 사용해서 기본적인 스타일링을해서 사용했을 땐 별 문제 없이 의존성 설치도 되고 사용에 이상이 없었으나 React key값 관리와 차트 사용을 위해 차트 "apexcharts": "^3.42.0", "react-apexcharts": "^1.4.1", key 값 "shortid"를 사용하니까 의존성을 받아 사용하던 프로젝트에서 에러가 발생했습니다 "Uncaught SyntaxError: The requested module '/node_modules/react-apexcharts/dist/react-apexcharts.min.js?v=73045f40' does not provide an export named 'default' " 직접 제작한 라이브러리에서 외부 라이브러리를 사용하려면 혹시 다른 방법이 필요한걸까요..??

개발자

#react

#module

#library

#component

답변 1

댓글 1

조회 144

2년 전 · axios_yw 님의 새로운 답변

react dataTable 추천해주세요!

[ 주요 기능 ] 1. Header : sticky, multi sorting, pin 2. Body : cellEdit, drag&drop 3. Footer : paging 4. Option : export(excel, pdf), chart [ 확인 ] 1. react 2. typescript 위 조건에 만족하는 추천 react dataTable 있을까요~? 유료도 환영입니다!!

개발자

#react

#datatable

#typescript

#grid

답변 2

댓글 0

조회 432

2년 전 · 익명 님의 질문

c언어 함수 코딩 질문

#pragma warning(disable : 4996) #include<stdio.h> #include<conio.h> int add(int a, int b) { int add = 0; int i = 0; printf("첫번째 정수: "); scanf("%d", &a); printf("두번째 정수: "); scanf("%d", &b); if (a < b) { for (int i = a; i < b + 1; i++) add += i; } else { for (int i = b; i < a + 1; i++) add += i; } printf("%d ~ %d의 누적합은 %d", a, b, add); return add; } int sub(int c, int d) { int sub = 0, sub1 = 0, sub2 = 0, i = 0; printf("첫번째 정수: "); scanf("%d", &c); printf("두번째 정수: "); scanf("%d", &d); if (c < d) { for (i = c; i < d+1; i++) { if (i % 2 == 0) sub1 += i; } printf("%d ~ %d의 짝수합 %d \n", c, d, sub1); for (i = c; i < d+1; i++) { if (i % 2 == 1) sub2 += i; } printf("%d ~ %d의 홀수합 %d", c, d, sub2); } else{ for (i = d; i < c+1; i++) { if (i % 2 == 0) sub1 += i; } printf("%d ~ %d의 짝수합 %d \n", c, d, sub1); for (i = d; i < c+1; i++) { if (i % 2 == 1) sub2 += i; } printf("%d ~ %d의 홀수합 %d", c, d, sub2); } return sub; } void swit() { int a = 0; int b = 0; int chack = 0; char ch; printf(" 1) 누적합 2) 홀짝합 3) 종료 --> "); scanf("%d", &chack); switch (chack) { case 1: add(a, b); break; case 2: sub(a, b); break; case 3:printf(" 종료 되었습니다 "); break; defult: printf(" error !! "); break; } } int main(){ int a = 0; int b = 0; int chack = 0; char ch; swit(); printf("계속하시겠습니까? (y/n)"); scanf("%s", &ch); } 이 부분에서 계속하시겠습니까? 이 질문에 'Y'나 'y' 를 넣으면 선택한 케이스를 반복하고 'N'이나 'n'을 넣으면 printf(" 1) 누적합 2) 홀짝합 3) 종료 --> "); scanf("%d", &chack); 이 구문이 나오게 하고 case 3이나 defult 가 나오게 되면 종료하는 프로그램 코드를 못하겠습니다 ㅠㅠ 도와주세요..

개발자

#c언어

답변 0

댓글 0

추천해요 1

조회 94

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

무한스크롤 No offset 방식 index지정에 대해 질문이 있습니다

안녕하세요 현재 스프링부트 querydsl로 무한스크롤을 구현하면서 no offset을 적용하고 있습니다.정렬 방식에는 최신순과 마감순이 있는데 최신순은 pk를 오토인크리먼트로해서 사용하면되서 괜찮은데 문제는 마감순입니다. - 마감순정렬조건은 기존에 pk가 오토인크리먼트방식이고 정렬 조건과도 무관해 pk말고 정렬조건이되는 컬럼을 index로 설정을 하려고 합니다! 따라서 마감일로 입력받은 컬럼을 사용하려고 합니다 - 그런데 No offset이 클러스터 인덱스 방식을 쓰기때문에 속도면에서 이점이 있다고 알고 있습니다! - 따라서 클러스터 인덱스를 생성하려면 unique index로 해야하는것 같습니다. 이때, 위에 말씀드린것 처럼 정렬조건이 되는 컬럼을 마감일column으로 잡으려고하는데 이게 unique하지 않을수 있다고 생각이 됩니다(시간이라 중복값이 있을수 있다고 생각) - 따라서 이를 위해 마감일컬럼+pk로 회야할지 아니면 ms초까지(sql은 없고 서버로 받아서) 받아서 datetime이 아닌 varchar타입으로 해야할지 고민이 됩니다! 여기서 제가 착각하고 잘못된 제안을 하고 있는부분이 있는지 아니면 다른 좋은 방법이 있는지 선배님들의 고견을 듣고 싶습니다!

개발자

#springboot

#no-offset

#무한스크롤

#mysql

#querydsl

답변 1

댓글 0

추천해요 1

조회 223

2년 전 · 익명 님의 답변 업데이트

해당 스프링부트 코드 해석 좀 부탁드립니다..

안드로이드에쓸 스프링부트 코드를 따왔는데 제가 잘이해사 안되서 상세히 알려주실 선배님조언 구합니다 package com.example.teamproject import MyAdapter import android.content.Context import android.content.Intent import android.icu.lang.UCharacter.GraphemeClusterBreak.L import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import com.example.teamproject.databinding.ActivitySearchBinding import com.example.teamproject.login.LoginActivity import com.example.teamproject.model.RstrModel import com.example.teamproject.review.ReviewActivity import com.google.android.material.bottomnavigation.BottomNavigationView import retrofit2.Call import retrofit2.Callback import retrofit2.Response class SearchActivity : AppCompatActivity() { lateinit var binding: ActivitySearchBinding private lateinit var adapter: MyAdapter override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivitySearchBinding.inflate(layoutInflater) setContentView(binding.root) setSupportActionBar(binding.toolbar) supportActionBar?.setDisplayShowTitleEnabled(false) binding.toolbar.title = "검색" val loginSharedPref = applicationContext.getSharedPreferences("login_prof", Context.MODE_PRIVATE) val userId = loginSharedPref.getString("m_id", null) val userService = (applicationContext as MyApplication).userService // 하단바 초기값 설정 val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottommenu) bottomNavigationView.selectedItemId = R.id.second_tab // 하단바 선택시 이벤티 binding.bottommenu.setOnItemSelectedListener {item -> when(item.itemId) { R.id.first_tab -> { val intent = Intent(this@SearchActivity, MainActivity::class.java) startActivity(intent) } R.id.third_tab -> { val intent = Intent(this@SearchActivity, ReviewActivity::class.java) startActivity(intent) } R.id.fourth_tab -> { if ( userId == null){ val intent = Intent(this@SearchActivity, LoginActivity::class.java) startActivity(intent) } else { val intent = Intent(this@SearchActivity, MyDining::class.java) startActivity(intent) } } R.id.fifth_tab -> { if ( userId == null){ val intent = Intent(this@SearchActivity, LoginActivity::class.java) startActivity(intent) } else { val intent = Intent(this@SearchActivity, MyProfilePage::class.java) startActivity(intent) } } } true } binding.searchBtn.setOnClickListener { var rstr_nm = binding.searchText.text.toString() val getnamecount = userService.getNamecount(rstr_nm) getnamecount.enqueue(object: Callback<Int>{ override fun onResponse(call: Call<Int>, response: Response<Int>) { if ( response.isSuccessful ){ val ncount = response.body() if (ncount != null) { if ( ncount >= 1){ val getname = userService.getName(rstr_nm) getname.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val rstrlist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, rstrlist) binding.recyclerView.addItemDecoration( DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL) ) } } override fun onFailure( call: Call<List<RstrModel>>, t: Throwable ) { call.cancel() } }) } else { Toast.makeText(this@SearchActivity, "검색 결과가 없습니다!", Toast.LENGTH_SHORT).show() } } } } override fun onFailure(call: Call<Int>, t: Throwable) { call.cancel() } }) } binding.area1.setOnClickListener { val rstr_addr = binding.area1.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.area2.setOnClickListener { val rstr_addr = binding.area2.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.area3.setOnClickListener { val rstr_addr = binding.area3.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.area4.setOnClickListener { val rstr_addr = binding.area4.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.area5.setOnClickListener { val rstr_addr = binding.area5.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.area6.setOnClickListener { val rstr_addr = binding.area6.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.area7.setOnClickListener { val rstr_addr = binding.area7.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.type1.setOnClickListener { val rstr_list = binding.type1.text.toString() val gettype = userService.getType(rstr_list) gettype.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.type2.setOnClickListener { val rstr_list = binding.type2.text.toString() val gettype = userService.getType(rstr_list) gettype.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.type3.setOnClickListener { val rstr_list = binding.type3.text.toString() val gettype = userService.getType(rstr_list) gettype.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.type4.setOnClickListener { val rstr_list = binding.type4.text.toString() val gettype = userService.getType(rstr_list) gettype.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.type5.setOnClickListener { val rstr_list = binding.type5.text.toString() val gettype = userService.getType(rstr_list) gettype.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.type6.setOnClickListener { val rstr_list = binding.type6.text.toString() val gettype = userService.getType(rstr_list) gettype.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } } }

개발자

#스프링부트

#안드롱디ㅡ

#안드로이드

#spring\

#spring

답변 1

댓글 0

보충이 필요해요 3

조회 214

2년 전 · 연양갱 님의 답변 업데이트

sql에서 primary키를 varchar로 설정해도 되나요?

sql에서 컬럼을 primary 키로 설정할 때 varchar로 설정해도 되나요? Foreign 키로 연결할 거라서요!!

개발자

#sql

#primary-key

#varchar

#foreign-key

답변 1

댓글 0

조회 168

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

개발자 선생님들 도와주세요..

안녕하세요 초보개발자입니다 지금 구글로 코드 복붙하며 게시판 수정중인데 아예 똑같이 복붙 하였는데 저는 왜 이런 식으로 나올까요 도와주세요 .. ㅠㅠ 프로젝트 발표가 코앞인데.. 1번째사진은 작성자의 사진이고 2번째 사진이 제 출력 화면입니다... 코드는 댓글에 적어두겠습니다..도와주세요.. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!--부트스트랩은 어떤device로 접속하더라도 해상도에 맞게 알아서 설정되는 탬플릿이다. --> <meta name="viewport" content="width=device-width" , inital-scale="1"> <!--스타일시트를 참조, 주소는 css안에 부트스트랩.css--> <link rel="stylesheet" href="css/bootstrap.css"> <title>JSP 게시판 웹 사이트</title> </head> <body> <!-- 네비게이션 구현 네비게이션이라는 것은 하나의 웹사이트의 전반적인 구성을 보여주는 역할 --> <nav class="navbar navbar-default"> <!-- header부분을 먼저 구현해 주는데 홈페이지의 로고같은것을 담는 영역이라고 할 수 있다. --> <div class="navbar-header"> <!-- <1>웹사이트 외형 상의 제일 좌측 버튼을 생성해준다. data-target= 타겟명을 지정해주고--> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-exmaple="false"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <!-- 여긴 웹페이지의 로고 글자를 지정해준다. 클릭 시 main.jsp로 이동하게 해주는게 국룰 --> <a class="navbar-brand" href="main.jsp">JSP 게시판 웹 사이트</a> </div> <!-- 여기서 <1>에만든 버튼 내부의 데이터 타겟과 div id가 일치해야한다. --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <!-- div 내부에 ul은 하나의 어떠한 리스트를 보여줄때 사용 --> <ul class="nav navbar-nav"> <!-- 리스트 내부에 li로 원소를 구현 메인으로 이동하게만들고--> <li><a href="main.jsp">메인</a></li> <!-- 게시판으로 이동하게 만든다. --> <li><a href="bbs.jsp">게시판</a></li> </ul> <!-- 리스트 하나 더 생성 웹페이지 화면에서 우측 부분--> <ul class="nav navbar-nav navbar-right"> <!-- 원소를 하나 구현해 준다. 네비게이션 우측 슬라이드메뉴 구현 --> <li class="dropdown"> <!-- 안에 a태그를 하나 삽입한다. href="#"은 링크없음을 표시한다. --> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">접속하기<span class="caret"></span></a> <!--접속하기 아래에 드랍다운메뉴 생성 --> <ul class="dropdown-menu"> <!-- li class="active" 현재 선택된 홈페이지를 의미 --> <li><a href="login.jsp">로그인</a></li> <li class="active"><a href="join.jsp">회원가입</a></li> </ul> </li> </ul> </div> <!-- 네비게이션 바 구성 끝 --> </nav> <!-- 하나의 컨테이너처럼 감싸주는 역할 --> <div class="container"> <div class="col-lg-4"></div> <!-- 회원가입 폼은 위의 양식은 일치하며, 이제 내부 폼만 바꿔준다. --> <div class="col-lg-4"> <div class="jumbotron" style="padding-top: 20px;"> <!-- 양식 삽입 post는 회원가입이나 로그인같이 어떠한 정보값을 숨기면서 보내는 메소드/ 로그인 Action페이지로 정보를보내겠다--> <form method="post" action="joinAction.jsp"> <!-- 회원 가입에 맞게 위에 액션은 joinAction페이지로 밑에 제목은 회원가입 화면으로 변경 --> <h3 style="text-align: center;">회원가입 화면</h3> <div class="form-group"> <!-- 회원 가입에서도 userID or userPassword는 동일하게 가져가고, 회원가입에 필요한 나머지 속성추가 --> <input type="text" class="form-control" placeholder="아이디" name="userID" maxlength="20"> </div> <div class="form-group"> <input type="password" class="form-control" placeholder="비밀번호" name="userPassword" maxlength="20"> </div> <!-- userName 추가 --> <div class="form-group"> <input type="text" class="form-control" placeholder="이름" name="userName" maxlength="20"> </div> <!-- 성별 선택 추가 --> <div class="form-group" style="text-align: center;"> <!-- 버튼 공간을 따로 마련해준다.(남,녀) --> <div class="btn-group" data-toggle="buttons"> <!-- 선택이 된곳에 표시를 하는 active를 설정해준다. --> <label class="btn btn-primary active"> <input type="radio" name="userGender" autocomplete="off" value="남자" checked>남자 </label> <label class="btn btn-primary"> <input type="radio" name="userGender" autocomplete="off" value="여자" checked>여자 </label> </div> <!-- 성별 선택부분 완료 --> </div> <!-- email 작성부분 구현 --> <div class="form-group"> <!-- placeholder는 아무런 입력이 없을때 띄워주는 값 --> <input type="email" class="form-control" placeholder="이메일" name="userEmail" maxlength="20"> </div> <!-- 버튼 또한 회원가입으로 value변경 --> <input type="submit" class="btn btn-primary form-control" value="회원가입"> </form> </div> </div> <div class="col-lg-4"></div> </div> <!-- 애니메이션을 담당하게 될 자바스크립트 참조 --> <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <!-- 특정홈페이지에서 제이쿼리 호출 --> <script src="js/bootstrap.js"></script> </body> </html>

개발자

#jsp

#java

답변 2

댓글 4

보충이 필요해요 3

조회 391

2년 전 · 이선욱 님의 새로운 답변

자바 codewords 문제중

문제 내용이 괄호가 정상적으로 작성되있으면 true 반환 아니면 false 이고 예제 "()" => true ")(()))" => false "(" => false "(())((()())())" => true 해답 : parenStr.chars().reduce(0, (s, c) -> s < 0 ? s : c == '(' ? ++s : --s) == 0; 인자값 parenStr은 왜 chars()를한거고 reduce개념을 읽어도 이해가 안가요.. 삼항연산자는 알겠는데 스트림의 원소들을 하나씩 소모하라는데 의미 파악이 안됩니다.

개발자

#java

#algorithm

답변 2

댓글 0

추천해요 1

조회 112

2년 전 · 윤석현 님의 댓글 업데이트

exe파일에서 DB가 돌아가는 원리가 어떻게 되는건가요?

파이썬에서 Designer로 간단한 프로그램을 만들었는데 현재는 db 정보를 pymysql.connect(host='127.0.0.1', user='root', password='1234', db='infra', charset='utf8') 이런식으로 불러오고 있습니다. 하지만 프로그램을 다 만들고 든 생각이 다른 DB연동된 소프트웨어들을 보면 내 컴퓨터에 아무것도 안깔려있어도 데이터 정보를 생성, 수정, 삭제할수 있네? 어디에 저장하는거지? 였습니다. github에서 다른분이 만든 작은 프로젝트를 봤는데 이 프로젝트에는 .db라는 파일이 있던데 이 파일은 어디서 만드는 것이고(mysql? pycharm?) 데이터가 많아져서 용량이 방대해지면 어떻게 되는지 궁금합니다. 구글에서 찾아봐도 전부 본인컴퓨터 DB와 연동하는 내용뿐이네요ㅠㅠ

개발자

답변 2

댓글 5

추천해요 2

조회 773

2년 전 · 쭈니 님의 새로운 댓글

라라벨 enum 타입 havingRaw절 사용방법 도와주세요ㅠㅠ

안녕하세요 :) 현재 라라벨로 프로젝트를 하고있습니다. havingRaw을 사용하는데 다른 타입들의 데이터들은 다 잘 작동하는데 데이터타입이 enum인 것만 작동을 안합니다. 그러나 아래의 sql문은 하이디sql 에서 실행이 잘 됩니다. SELECT order_id AS cnt FROM test_table WHERE mall_id = 'test_mall' AND user_id = 'test_user' GROUP BY order_id HAVING MIN(type) = 'p' 데이터 타입은 아래와 같습니다. order_id = varchar mall_id = varchar user_id = varchar type = enum $row= DB::table("test_table") ->select(DB::raw('order_id as cnt')) ->where("mall_id", $test_mall) ->where("user_id", $test_user) ->groupBy('order_id') ->havingRaw('MIN(type) = p') ->get(); 해당 쿼리빌더에 잘못된 점이 있을까요??

개발자

#라라벨

#php

#sql

#laravel

#mysql

답변 1

댓글 1

조회 156

3년 전 · 김대현 님의 새로운 답변

SQL varchar(n)과 한글 글자 수 질문

테이블의 한 컬럼을 varchar(50)으로 설정 했습니다. 50자까지 들어갈 수 있는걸로 알고 있었는데 검색해보니 mysql 버전에 따라 저 숫자 50이 글자 수 일수 있고 byte일수도 있다는 것을 알았습니다. 일단 저는 글자 수로 들어갑니다. 한글 50자 까지 잘 들어가고 있습니다. 그래서 확인해보기 위해 length를 통해 들어간 데이터의 길이를 조회했는데요 대부분의 데이터가 50을 넘고 있었습니다. 한글은 * 3을 한 수치고 영어는 한글자에 1의 길이를 차지하는 것 같습니다. 왜 이런 일이 발생하는 걸까요? 조회한 쿼리문 select length(title) as length, title From Contents where title is not null; 결과 예시 row length | title 120 | 가나다라마바사아자차카타파하가가가가가가가가가가가가가가가가가가가가가가가가가가 6 | 인형 5 | hello 17 | test 중입니다

개발자

#sql

#varchar

#data-type

답변 2

댓글 0

조회 525