#코드

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

데이터 수집 시스템 조언 부탁드립니다..

안녕하세요. 현재 데이터분석가 인턴으로 회사에 들어간지가 한달이 조금 넘었습니다. 현재 회사에서 분석이 아닌, 직접 데이터를 수집하는 작업을 하고 있습니다. 제가 분석만 하다보니, 데이터를 수집하고 저장하는 작업을 처음해보고 사수도 따로 없다보니 조언을 구할 곳이 없어서 이렇게 게시물로 조언을 요청드립니다.. 지식이 부족해 다소 어렵게 설명을 드려도 이해 부탁드리며, 제 글을 보고 “저 친구는 왜 저렇게 비효율적으로 하지? 이렇게 하면 좋을텐데”라는 생각이 드신다면 바로 댓글이나 쪽지 부탁드립니다. 제가 처음 올려봐서 쪽지 기능이 있나 모르겠네요.. 먼저, 간단하게 제가 진행하고 있는 데이터 수집 절차를 설명드리겠습니다. 1. 컬럼이 한개인 4GB가 조금 넘는 데이터를 수집 코드에 불러와야 한다. 해당 데이터에는 도메인 주소가 담겨 있다. 2. 내 수집 코드는 불러온 데이터를 한행씩 조회하면서 수집을 진행한다. 3. 한 행에 있는 도메인 주소에 순서대로 http 접속을 해서 해당 도메인 주소가 사전에 설정한 특정 조건을 만족하면, 해당 도메인 주소와 사이트에 접속해서 추출한 정수형 값을 DB에 저장한다. 4. 즉, 4기가의 데이터를 불러와 한 행씩 조회해가면서 실시간으로 데이터를 db에 수집하는 코드다. 5. 24시간 동안 코드를 돌리는 수집 예상 기간은 3개월 정도이다. 다음으로는 조금 구체적인 진행 사항을 말하겠습니다. 밑에서부터 길어지니, 바쁘신 분들은 위에 주요 절차만 보시고 조언 주시면 감사하겠습니다. 1. 파이썬만 사용할 줄 알기 때문에, 파이썬을 사용하여 class로 만들어 수집 코드를 짰다. 2. 데이터의 양이 많아서 메모리 부족 오류가 빈번하게 나타나, 하둡과 아파치 스파크를 이용해봤다. 내가 조회할 데이터 파일을 하둡 HDFS에 업로드 한다음에, 아파치 스파크 클러스터를 구축했다. 그리고, pyspark 모듈을 이용해 파티션을 나눠 데이터를 불러왔다. 파티션으로 받아온 값을 리스트로 변환하여 순서대로 해당 도메인 주소로 접속하는 반복문을 진행하면서 데이터를 수집했다. 즉 파티션으로 데이터를 쪼개서 1번 파티션부터 n번 파티션까지 각각 파티션 내부에 도메인 주소 리스트가 반복문을 진행된다고 보면 된다. 각 파티션이 다른 파티션으로 전환되는 과정도 반복문으로 처리했다. 하나의 파티션 마다 내가 만든 class(도메인 리스트를 인자로 받는다)가 한번씩 실행된다고 보면 된다. 3. 수집 속도가 너무 느려서 class에 있는 수집 메소드를 멀티 스레드 방식을 이용해서 수정해주었다. 수집 속도가 매우 빨라졌다. 4. 기존에는 aws의 클라우드 db(dynamo db)를 사용했지만, 과금 문제로 인해 로컬에 db를 설치하기로 했다. 쓰기 속도가 매우 빠른 redis db를 선택했다 5. 위에서 설명한 반복문을 돌면서 조건에 일치한 도메인 주소와 정수 값은 한 행씩 redis db에 key(도메인주소) value(정수값) 형식으로 저장하도록 코드를 만들었다. 이 과정도 class 내부에 포함되어 있다. 6. redis는 on memory db이기 때문에 대용량 데이터를 영구적으로 저장하고 분석하기에 적합하지 않다고 판단해서 1시간마다 redis에 있는 데이터를 postgresql db로 옮겨주는 코드를 따로 만들었다. postgresql db에 미리 redis에서 옮겨갈 테이블을 생성해두었다. redis의 key였던 도메인 이름을 첫 번째 필드에 프리이머리 키로 저장했고 value인 정수 값을 2번 째 필드에 값으로 넣어줬다. 그리고, 마지막 필드에는 자동으로 데이터가 저장될 때, 현재 시간이 넣어지게 테이블을 만들었다. 총 3개의 열로 구성된 테이블에 1시간에 한번씩 redis에 저장해두었던 데이터가 옮겨간다고 생각하면 된다. 7. 처음 redis에 데이터를 저장할 때 ttl을 설정해서 1시간 10분이 지나면 redis db에서 데이터가 자동으로 소멸되도록 설정했으며, 만약 postgresql에 중복된 데이터가 들어간다면 자동으로 무시하고 다음 작업을 진행하도록 테이블 설정을 해줬다. 즉, 실시간으로 데이터가 수집되고 자동으로 시간이 지나면 데이터가 소멸되는 redis db에서 1시간마다 한번 postgresql로 옮겨주는 코드를 따로 만들었다. 8. 수집 코드를 spark-submit 명령문으로 실행해주었다. spark-submit 명령어 앞에 nohup을 해줘서 백그라운드에서 코드가 실행되게 해줬고, 로그 결과를 따로 파일을 만들어 저장되도록 했다. 그리고 파이썬 실행 파일 내에서도 로그를 입력하는 코드를 만들어서, 도메인의 http 접속이 성공했는지의 여부를 로그 파일에 실시간으로 입력되도록 했다. 예를 들어, http 접속이 잘 된 도메인 주소는 로그에 “INFO 도메인 주소: success” 이렇게 기록하고, 타임아웃 에러, 접속 에러, redirect 오류, db 저장 오류는 모두 종류별로 예외 처리해서 로그에서 기록되도록 코드를 구성했다. 파이썬에서 자체적으로 로그를 기록한 파일은 수집코드를 실행하면서 파티션이 전환될 때마다 하나씩 생성된다. 이제 이렇게 제가 실행할 코드는 24시간 내내 수집을 진행하는 코드 하나와 1시간에 한번 데이터를 옮겨주는 스케줄러 코드로 총 2개가 됩니다. 저는 이 코드와 수집 환경을 만들기 위해 모두 도커를 활용하였으며, 사용한 컨테이너와 부가 설명은 다음과 같습니다. spark-master: 하둡과 스파크 클러스터를 구축하는 컨테이너로 standalone모드로 spark-summit 명령어로 파이썬 파일을 실행해주었다. --conf 옵션으로 메모리, 하트비트 간격, 파티션 수 를 지정해주었다. 스파크와 하둡을 처음 사용해봐서 약간의 개념만 있는 상태에서 돌려보니 아직도 세부 설정을 제대로 이해하지 못했다. 결국 worker를 1개 생성해서 파이썬 파일을 처리하도록 하였다. 현재 대다수의 오류가 이 컨테이너에서 발생한다. redis: spark-master에서 실시간으로 실행되고 있는 수집 코드에서 선별된 데이터들이 redis 컨테이너에 있는 redis db에 저장된다. postgresql: 1시간에 한번 redis에 있는 데이터를 옮기기 위해 postgresql 컨테이너를 생성했다. schduler: 1시간에 한번 postgresql 컨테이너에서 작동하고 있는 postgresql db에 redis 데이터를 옮겨주기 위한 스캐줄러 코드를 실행할 컨테이너다. redis-monitor: 실시간으로 redis db를 모니터링 하기 위해 redis-monitor 컨테이너를 생성하여 웹에서 모니터링 툴인 Redis-Stat에 접속한다. postgre-monitor: 마찬가지로, 실시간으로 postgresql db를 모니터링 하기 위해 생성한 컨테이너로 웹에서 Pgadmin4를 사용할 수 있다. 이렇게 총 6개의 컨테이너를 생성하여 내 수집 코드를 실행했는데, 여기서 많은 문제가 발생했습니다. 제가 가진 의문과 문제를 나열하자면 다음과 같습니다. 1. 먼저, 수집 코드를 실행한 다음에 스케줄러 코드를 실행해주었는데, (서로 독립된 컨테이너에서 실행) 두 코드가 DB에 동시에 접속할 때, 충돌이 일어날 가능성이 있지 않을까? 2. 수집 코드를 실행하고 몇분이 지나면 터미널이 먹통이 되고, 코드가 더 이상 실행이 안되는 일이 빈번하게 발생한다. 너무 많은 자원을 사용하고 있어서 그런건가.. 컴퓨터 사양이 안좋아서 그런건가 원인을 잘 모르겠다.. 3. spark-submit 로그를 보면 내 노트북에서는 안그러는데, 대용량 파일을 불러오는 과정에서 파티션 별로 데이터를 정리할 때 오류가 빈번하게 발생한다 . executor가 통신이 안된다는 경고 메세지도 자주 나오고, 특히, Remote RPC client disassociated 라는 오류가 가장 많이 나온다. 내 컴퓨터보다 높은 사양의 클러스터를 구축하려고 해서 그런가. 검색해보니 네트워크 문제이거나, 컨테이너에 할당한 자원을 초과해서 그런거라고 한다. 대용량 데이터를 불러오는 다른 방법을 강구해봐야되나 고민하고 있다. “그래서 요점이 뭐야” 라고 물어보신다면, 저는 현직에서 활동하고 계신 데이터 엔지니어, 백앤드 개발자 분들이 제 글을 본다면 “아니 굳이 왜 그렇게 하지? 이렇게 쉬운 방법이 있는데” 또는 “저기서 이렇게도 해봤나?, 이러면 안정적으로 코드를 돌릴 수 있을텐데”라는 반응으로 갈릴 것 같다고 생각합니다.

개발자

#데이터베이스

#데이터수집

#아파치스파크

#redis

#python

답변 2

댓글 0

추천해요 7

조회 884

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

주니어끼리 코드리뷰하는게 의미가 있을까요?

안녕하세요 저는 1년차 JAVA 백앤드 개발자입니다. 현재 코드리뷰가 없는 강소기업에서 1년 정도 근무중에 있는데 저와 회사의 발전을 위해서 제가 주도적으로 도입을 추진해볼까 고민중에 있습니다. 하지만 저도 코드리뷰를 한번도 격어보지 않아 코드리뷰를 어떻게 진행할지 고민이 있어 질문글을 올립니다. 1. 직접 이야기해보진 못했지만 사측입장은 업무도 바쁜데 코드리뷰할 수 있는 시간을 따로 내어주지는 않을것으로 생각됩니다. 따라서 코드리뷰를 진행하게된다면 개발자들이 개인시간을 활용해서 진행하게될듯합니다, (물론 코드리뷰 문화가 어느정도 정착하게된다면 업무시간중에 할 수 있도록 건의드릴 예정입니다.) 아무래도 개인시간을 사용해야하다보니 길게는 할 수 없고 짧게 30분에서 1시간정도 일주일에 하루만 할듯한데 코드리뷰하는데 이정도 시간에 가능할지? 궁금합니다. 2. 사내 개발자가 약 30명 정도되는데 업무 특성상 거의 다른 회사나 다름없는 부서를 재외하고는 코드리뷰에 참여할 수 있을 인원이 많아야 5명 정도 될듯합니다. 이정도 인원으로 코드리뷰하는게 적당할지 궁금합니다. 3. 사내 개발자들간 사용하는 프레임워크나 언어가 완전이 다르더라도 코드리뷰를 하는 의미가 있을까요? 저 같은 경우는 JAVA Spring 위주로 개발을 진행하기 때문에 Python이나 Node.js 와 같은 코드를 리뷰하기 어려울듯한데 의견 부탁드립니다. 다른 회사의 경우는 사용하는 기술이 비슷해서 코드리뷰가 진행이 되는지.. 아니면 각자 자신의 분야에서 진행하는지 궁금합니다. 4. 회사에 중간 개발자가 없어 주니어 개발자 위주로 코드 리뷰가 진행될것으로 예상 되는데 이럴 경우 고오급 개발자들의 리뷰를 받을 수 없어 코드리뷰를 통한 발전이 저해될 수 있을것 같습니다. 이런경우에는 어떤 방식으로 코드리뷰를 진행하는것이 효율적일지 궁금합니다. 아니면 제가 초청? 할 수 있는 시니어 개발자분이 한분정도 있는데 이분이 오시게 되면 거의 이분 혼자서만 답변을 줄것으로 예상되는데 어떤 방향으로 가는게 좋을지? 궁금합니다. 4. 마지막으로 그외 어떤 조언이던지 해주실 수 있는 조언이 있다면 부탁드리겠습니다. 감사합니다.

개발자

#코드리뷰

#주니어

답변 7

댓글 6

추천해요 14

조회 5,932

6달 전 · 김준석 님의 새로운 댓글

Next.js 코드 가독성..

안녕하세요 프론트앤드 1년차에 다가가고 있는 신입 개발자입니다. 현재 Next14를 사용하고 있으며 코드의 가독성, 효율성을 많이 고려하면서 코드를 짜려고하는데 너무 고민이 되네요 저보다 앞서서 달려가고 있는 개발자 선배님의 생각을 듣고싶습니다 ㅠㅠ... 2가지가 궁금합니다. 먼저 첫번째 이미지처럼 Version에 관련된 파일을 저렇게 분리했을 때 저는 Version의 최상위 Layout.tsx에서 모든 것을 선언하기가.. 너무 오히려 가독성이 안좋다고 생각을 하고 있습니다 즉, 변수나 함수를 모두 최상위 Layout.tsx에서 선언 및 정의를 해두고 props로 내려주는게 이상하다고 생각을 합니다. 변수, 함수, useEffect 모두 직접 해당 변수나 함수를 컨트롤하는 부분에서 선언 및 가공을 하는게 맞다고 생각을 합니다. 최상위 Layout.tsx가 너무 무거우면 오히려 나는 VersionDataTable에 관련된 변수나 함수만 보려고 하였으나 최상위 Layout.tsx를 보고 아 이게 VersionDataTable에 필요하구나 뭐가 필요없구나, useEffect의 의존성 배열까지 고려하는것이 불필요하다고 생각을 하고 있습니다.. 근데 같이 프론트 앤드 개발하시는 분께서는 '단기적으로 절대 코드가 변하지 않는다고 생각하면 그 말씀이 맞는데 그건 아니잖아요? 우리는 계속 유지보수를 할거고 그러면 결과적으로 A에서만 사용하던 변수나 함수들을 A,B,C에서 같이 사용할 수 있게 변경하게 되면 그때 변경하면 유지보수 측면에서 너무 안좋습니다. 최상위에 모두 선언이나 정의를 해두고 props로 내려주는게 맞다 이런 형식으로 코드를 작성하면 몇개월 뒤에 코드를 수정할 때 A가서 수정했다가 C가서 수정했다가 D가서 수정하실 거에요? 바로 알아보실 수 있겠어요?' 라고 말씀을 하시더라구요.. 물론 몇개월 뒤에 코드를 보거나 하면 제가 작성한 코드인데도 저는 헷갈리는 경우가 많습니다. 그러나 최상위에 모두 선언 및 정의해둬도 마찬가지 아닌가..? 유지보수 측면에서 뭐가 안좋은거지..? 라고 생각되게 됩니다.. 선배님의 말씀을 따라가고는 싶은데 이해가 안돼서요 제가 아직 기본기가 많이 부족한 상황이라 이 상황에서 말씀드리면 이론부터 말하며 설득시키기가 부족하다고 생각하기 때문에 말씀드리면 오히려 '저는 이렇게 생각해요 틀렸는데요?' 라고 말하는 것 같아 말다툼이 될 것 같습니다. 2. 밑 사진을 보면 modalTemplate라는 폴더, ConfirmTemplate이라는 폴더가 존재하는데요 이것에 대해서 저는 사용하는 용도에 따라서 Create면 Create Create와 Update를 동시에 할 수 있는거면 BundleCreateAndUpdate 이런 형식으로 각각의 파일을 생성을 하고 문법상 공유되는 부분은 중복이 되어서 실제로 보여주는 부분을 영역으로 나눠서 BasicOptions, SelectList, VersionDetail, VersionOptions로 나누고 각각의 파일에서 사용하는 부분만 불러와서 쓰는 형식으로 코드를 작성했습니다. 그러나 이렇게 용도에 따라 구분하지 않고 최상위 Layout.tsx파일 하나만 만들고 ModalType이라는 props를 받아서 ModalType이 create, update, create&update, delete ... 등 JSX에서 삼항 연산자를 써서 처리를 할수도 있습니다. 저는 ModalType으로 처음에 구분하다보니 나는 'create' 속성일 때 어떤 형식으로 되는지 코드로 보고싶은데.. 그러면 너무 뜯어서 봐야하더라구요 그래서 용도에 맞게 파일을 만들고 거기서 form을 불러오기만해서 중복 코드를 줄이는 방식을 택했습니다.. (더 나은 코드라고 생각했습니다.) 그랬지만 선배님께서 'ModalType으로 나누는게 더 좋아요 저렇게 지으면 가독성이 너무 떨어지고 파일의 이름이 너무 길어지잖아요 이상하지 않나요?' 라고 말씀을 하시더라구요... 물론 가독성은 사람마다 다른거 알고있습니다. 그러나 ModalType으로 나누기 시작하면 한도 끝도없이 나누고 ModalType이 delete일 때만 사용하는 함수, create일 때만 사용하는 함수 등 필요없는 함수도 너무 많아져서 용도에 맞게 파일을 구분하고 거기서 중복 코드만 최대한 줄이자! 라고 생각하여 코드를 작성했는데 이 내용도 말씀드려 봤지만 '가독성' 이라는 이유 하나만으로 너무 안좋다고 합니다.. 진짜 안좋은건가요..? Next 도 그렇고 프론트 앤드 너무 어렵습니다..

개발자

#react

#next.js

#front-end

#code-review

답변 2

댓글 2

추천해요 1

조회 667

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

codepush 적용

codepush는 마이크로소프트사에서 자체적으로 서비스를 제공하는거라고 알고있습니다. 회사 업무 특성상 자주 배포해야하는 이슈때문에 코드푸시를 적용했습니다. 코드푸시 업데이트 창이 뜨게 되면 사용자의 선택으로 업데이트를 진행한 후 다시 로딩이 됩니다. 현재는 코드푸시 업데이트는 코드푸시 업데이트대로 뜨고, 앱은 앱대로 뜨도록 구현이 되어있습니다. 이걸 코드푸시 업데이트가 있으면 코드푸시 업데이트를 띄우고, 업데이트가 없다면 업데이트를 안띄우고 앱으로 바로 넘어가도록 수정을 하고자합니다. 궁금한점은, 1. 마이크로소프트사의 서버가 불안정하다고 많은 문서를 봤습니다. 만약 코드푸시 업데이트가 있으면 업데이트가 띄우도록, 없으면 없는대로 앱을 구현할 수 있도록 한다고 했을때, 업데이트 유무를 판단하는 codePush.checkForUpdate() 를 통해 구현을 한다면, 데이터를 가져오는데 시간이 지연될 수 있다고 생각이 듭니다. 시간이 지연되더라도 최소 ex)5초 가 지나면 업데이트를 무시하고 앱을 구현할 수 있는 방법이 있을까요? 많은 블로그에서는 코드푸시 업데이트 유무로 판단한 후 업데이트창을 띄울지 말지를 결정을 하는것같은데, 서버가 불안정할때는 지연시간이 길어지지 않을까.. 싶습니다. 코드푸시를 업무에서 적용하고 있는 분들 도움을 주세요.... ㅜㅜ 추가적으로 android에서 코드푸시 업데이트 창이 떠서 업데이트확인 버튼을 눌렀음에도 불구하고 아무런 반응이 없는 경우가 있습니다. 이 경우에 다시 앱을 재시작하면 다시 코드푸시 업데이트 창이 떠서 문제없이 해결할 수 있었습니다. 하지만, ios의 경우에는 같은 상황이여도 재시작하면 코드푸시 업데이트 창이 안뜨는경우가 간혹 있습니다. maxRetryAttempts: 3 이 설정을 추가하여도 안되는 경우가 간혹 발생하는데, 어떻게 처리 해야할지 도움을 주시기 바랍니다... ㅜㅜ

개발자

#react-native

#codepush

답변 0

댓글 0

조회 112

8달 전 · 익명 님의 새로운 댓글

코딩테스트에서 코드 수준도 평가 대상인가요?

취업하기 위한 코딩테스트를 볼 때, 코테를 통과하기만 하면 코드를 더럽게 짰든 이상하게 짰든 뭐 오류 처리를 안했든 상관 없는 건가요? 이건 대기업이냐 스타트업이냐 등 회사 성향에 따라 달라질 수도 있나요? 혹시 그렇다면 주로 어떤 유형의 회사에서 어떻게 평가하는지가 궁금합니다. 그리고 만약 코드 자체의 수준도 평가 대상에 들어가는 거라면, 예를 들어 문제에서 n은 무조건 자연수라는 조건이 주어졌지만, 코드를 짤 때 n이 자연수가 맞는지 다시 검증하는 코드를 넣고, 이 검증을 통과해야 그 뒤에 로직을 처리하게끔 만드는 과정이 필요한가요?? (특히, 만약 n이 자연수가 아니라면 그 뒤에 로직에서 오류가 나는 경우) 검증 과정을 넣는 게 실무에서는 꼼꼼하고 좋은 코드라고 생각은 드는데, 문제에서 절대 나올 일 없는 경우라고 못 박아놓은 경우에도 검증 코드를 넣는 것이 “코테에서 좋은 평가를 받기 위해” 도움이 되는지 궁금합니다!!

개발자

#코딩테스트

답변 1

댓글 1

조회 100

일 년 전 · 이지헌 님의 새로운 댓글

[Python] 재귀를 이용한 2개의 DFS 코드 차이점을 모르겠습니다.

안녕하세요! 백준 13023번 - ABCDE 번을 파이썬으로 풀다가 이해가 되지 않는 부분이 있어서 조심스레 질문을 남깁니다. 위의 코드와 아래 코드의 차이는 visited와 dfs를 더 깊게 탈 때, 방문배열을 체크하고 해지하는 방식의 차이가 있습니다. 제가 생각하기에는 위의 코드가 dfs 함수에 들어가자마자 visited[x] =True 를 하니깐, 굳이 밑의 코드의 visited[i] = True dfs(i, level + 1) visited[i] = False 이 부분과 같이 할 필요가 없다고 생각했습니다. 하지만 위의 코드를 사용한 것은 오답이고, 아래 코드는 정답이라 둘의 코드의 차이가 있는지 궁금합니다. 제가 생각하기엔 두 코드가 동일하게 작동한다고 생각했습니다. 혹시 어떤 부분에서 차이가 있는지 알려주실 수 있을까요? 혹시나 해서 맨 밑에, 제가 제출했는데 틀린 코드를 적어놓겠습니다!

개발자

#python

답변 2

댓글 4

조회 119

2달 전 · 익명 님의 질문

리액트에서 이벤트 루프관련해서 질문이 있습니다

안녕하세요. 리액트에서 이벤트 루프 동작 관련해서 제가 이해한내용이 맞는지 질문드립니다! 코드를 간단히 설명드리면 List를 그리는 scroll container가 있고 아이템이 추가되면 마지막으로 추가된 아이템으로 스크롤을 시키려는 코드입니다. (useEffect를 사용해도 되지만 이벤트 루프를 이해하기 위해서 작성하였습니다!) 스크롤을 시키기 위해 작성한 코드는 세가지입니다! 1번 코드는 스크롤이 되지 않습니다. 이유는 리액트에서 batch 업데이트 과정에서 렌더링되기 전에 호출되었으니 스크롤이 되지 않습니다. 2번 코드는 스크롤이 되었습니다. 리액트의 상태변화는 마이크로태스크큐에서 실행이 되었고 렌더링이 발생한 후에 매크 태스크큐가 실행되기 때문에 올바르게 렌더링 후에 실행이 되었습니다. 3번 코드는 스크롤이 되었습니다. 이건 이유를 정확히 모르겠습니다. 개발자 도구에서 실행된 시점을 봐도 마이크로태스크큐에서 스크롤 함수가 실행되었지만 올바르게 실행이 되었습니다. 마이크로 태스크 큐 실행과정에서 appenchild가 발생하고나서 렌더링이 되기전에 이미 레이아웃이 다 계산은 완료가 되는걸까요? 어떻게 이해를 해야될지 모르겠습니다.

개발자

#react

#javascript

#event-loop

답변 0

댓글 0

조회 31

일 년 전 · 백승훈 님의 답변 업데이트

국비 프로젝트 중인데 걱정입니다. 조언 부탁드립니다.

안녕하세요 프론트엔드개발자를 꿈꾸고 있는 28살 비전공자입니다. 현재 국비지원을 받아 프론트엔드과정을 수강 중 입니다. 9월부터 프로젝트를 시작해서 상당부분 개발이 완료된 단계입니다. 하지만 걱정은 커지고 있습니다. 첫번째는 코드 작성을 못하겠습니다. 그동안 배운코드를 사용하고 싶은데 막상 하려니까 작성을 할줄 몰라 인터넷 검색을 통해 나온 코드를 복붙해서 제것으로 변경을 하거나 참고하면서 클론코딩?하는 느낌으로 만들고 있습니다. 취업하고 나서 기본적인 코드도 작성 못할거같아서 걱정입니다. 두번째는 코드이해가 잘 안됩니다. 알고 작성을 해야하는데 두루뭉술하게 이렇게하면 되겠지? 하면서 작성을 하고 있습니다. 이해가 되려면 반복적으로 봐야 한다고 하는데 봐도 이해가 안되는 부분이 있어서 걱정입니다. 세번째는 자꾸 조원들과 비교하게 됩니다. 조원들이 작성한 코드를 보면 잘한다는 느낌을 많이 받습니다. 하지만 물어보면 자신들도 잘 모르고 찾아본다고 답변을 합니다. 제가 찾으면서 하면 저정도로 할수 있나 의문이 들면서 같이 수업을 듣고 같이 공부했는데 내가 이해력이 낮은건가? 라는 생각이 듭니다. 네번째는 팀장이 자꾸 코드를 수정합니다. 제가 만든 페이지의 코드를 팀장이 생각하기에 더 편하도록 코드를 수정합니다. 저는 처음하는 프로젝트이고 팀장이 수정하는덴 이유가 있다고 생각하여 말은 안했지만 현재 제가 작성한 코드를 수정못하는 단계까지 왔습니다. 이부분에 대해서는 초반에 팀장한테 말을해서 제가 끝까지 책임지고 코드를 작성할거라고 말을 했어야했는데 안일하게 넘어간 부분에 대해서 후회하고 있습니다. 수료 후 면접을 볼때 면접관들이 코드내용을 물어볼텐데 제가 아는게 없어서 어떻게 답변을 해야할지 모르겠어서 걱정입니다. 긍정적으로 생각하려고해도 걱정만 늘면서 자존감만 낮아지고 있는거 같습니다. 저같은 경험이 있으셨다면 극복할수 있었던 방법이나 제가 걱정하고 있는 부분에 대한 조언 부탁드립니다...

개발자

#프론트엔드

#비전공자

답변 4

댓글 1

조회 931

8달 전 · 김영진 님의 댓글 업데이트

사내 코드리뷰... 어떻게 하는게 맞는걸까요?

안녕하세요 요즘 정말 고민인 부분이 있는데 따로 조언을 구할 곳이 없어서 질문 올려봅니다. 맥락을 좀 설명하자면, 사내에서 개발자들끼리 연차 상관없이 서로 코드 리뷰를 하는 시스템이 잡혀있습니다. 전 입사한 지 1년 정도 되었고, 같이 일하시는 분들은 0~10년차 이상 다양해요. 문제는 크게 2가지 입니다. 첫 번째는, 코드 리뷰를 할 때 제 개인의 기준을 잣대로 활용해도 되는가? 입니다 저는 코드를 짤 때 저만의 기준이 존재합니다. 예를 들면, 코드를 읽다가 “이런 변수명은 지양해야지, 이렇게 함수 중첩이 되면 가독성이 떨어져, 이 함수는 하는 일이 너무 많은 것 같은데?” 라는 생각이 들면 코멘트를 작성하는 편입니다. 근데 문득 저만의 기준을 상대방에게 강요하고 있는 건가..? 하는 생각이 들었어요. 혹시 여러분들은 코드 리뷰를 할 때 기준이 있나요? 있다면 무엇을 기준으로 하시나요? 개인의 경험인가요? 두 번째는, 연차가 많으신 분의 코드를 리뷰 할 때 “내가? 해도 되는 건가?” 라는 생각이 들어요. 물론, 개발자라면 연차 상관없이 코드 그대로만 리뷰하는 게 맞지만, 리뷰를 하다 보면 “이게 맞는 건가? 내가 너무 시야가 좁은 것은 아닌가? 내가 고려하지 못한 다른 부분 때문에 코드를 이렇게 작성하신 게 아닐까?” 라는 생각이 자주 들어서 썼던 코멘트도 지우는 경우도 많거든요 ㅎㅎ 연차가 있으신 개발자 분들이 느끼기에 저연차 또는 갓 들어온 신입이 본인 코드에 리뷰를 달면 어떤 기분이신지도 궁금합니다. 두서없이 쓰다보니 길어졌는데요. 결론은 사내 코드리뷰를 어떻게 하시는지, 기준이 무엇인지 궁금합니다! 감사합니다!!

개발자

#code-review

#코드리뷰

답변 6

댓글 7

추천해요 86

보충이 필요해요 1

조회 4,840

7달 전 · 아기 개발자 님의 새로운 답변

코딩 과외받는게 효과가 있을까요?

안녕하세요 저는 비전공자로 시작해 전공물타기를 거쳐 현재 컴공과에 재학중입니다. 지식이야 머리에 때려넣으면 돼서 괜찮은데 실무적인 코딩실력이 너무 초급이라 여러모로 공부를 하고 있는데요, 학교 방학동안 (4-6월) 실력향상을 좀 많이 시켜보고자 온라인으로 일대일 과외를 진행했습니다. 배우질 않아서 방법을 모르는 부분은 코딩을 못하지만 배우고 나서 문제를 풀때는 솔직히 제가 코딩머리가 아예 없다고 생각하진 않습니다. 수업 받으면서 문제풀때도 웬만한 건 금방금방 쉽게 풀었구요 수업은 보통 수업전까지 기본적인 개념이나 문법에 관한 영상링크를 보내주면 그걸보고 실습을 해보고, 숙제로 문제를 주시면 그걸 제가 풀어보고 만든다음 피드백을 받는 형식이었는데요. 그런데 피드백이란 게 음…한달반 넘는 시간동안 피드백을 요청했을때 “~~~부분 아직 잘 모르시는 것 같고 더 자세하게 어떻게 해야 코드가 더 좋아질지 피드백은 공부를 좀 더 하고 나중에 짚어야할 것 같아요~~~” 이런식으로만 말씀하시고 코드리뷰나 이런게 없었습니다. 유튜브나 인터넷 코스강의 듣는 것과 비교했을 때 뭐가 더 엄청나게 다른지도 못느꼈구요… 과외를 받는 것의 목적은 결국 내가 가려운 부분을 바로 긁어주듯 저의 필요에 맞게 수업을 제공해주는 것이라고 생각하는데 그 부분이 느껴지지가 않았습니다. 물론 제가 너무 초급실력인건 알지만 시간당 4-5만원 짜리 수업인데 이게 과연 맞는건지 의문이 들더라구요. 요즘 유튜브며 인프런이며 여러 코딩 강의사이트들이 잘 되어 있는데 차라리 질문답변을 꾸준히 잘 해주시는 인터넷 과정을 수강해서 돈과 시간을 아끼는게 낫나 싶구요. 초급에서 벗어날 때까지는 스스로 강의수강하면서 실력을 좀 더 쌓고 나중에 개인 수업을 듣는 게 나을까요? 아니면 좀더 버티면서 개인수업을 이어나가는 게 나을까요? 선생님을 바꿀수도 있구요…참고로 수업은 자바랑 JS 입니다 경험 많으신 분들의 조언이 꼭 필요합니다 당분간 인터넷 코스 들으면 혼자 공부해도 괜찮을지 아니면 개인수업이 그만큼 가치가 있다고 생각하시는지, 혹은 추천하시는 공부방법이 있다면 고견 부탁드립니다! 감사합니다

개발자

#코딩공부

#공부

답변 1

댓글 0

추천해요 1

조회 79

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

node.js controller service 분리 상태코드반환 책임 질문..

제가 node.js 로 토이프로젝트 진행중에 있는데 코드를 controller와 service 를 분리해서 진행하고있습니다. 예를 들면 예매 기능을 구현한다고하면 예매 성공까지 검증해야하는 로직이 3개라고 치면 1. 컨트롤러에서 해당 서비스코드의 3개의 함수를 각각 실행해서 해당 상태코드와 에러메세지를 작성해 반환할지 아니면 2. 컨트롤러에서 하나의 서비스코드 함수를 실행해 서비스코드에서 해당 상태코드와 에러메세지를 컨트롤러에 전달해 반환할지 고민입니다. 상태코드를 서비스계층 부분에서 담아도 될지 의문이듭니다.

개발자

#node.js

#mvc

#controller

#service

답변 1

댓글 0

조회 444

2달 전 · aigoia 님의 새로운 답변

데이터 분석 공부를 처음 시작하는데 어떻게 공부하는 게 좋을까요?

저는 군대에서 데이터 분석을 공부 중인 군인입니다. 열정은 있는데 방법을 몰라 막막해서 질문합니다. 군대라는 제한된 공간에서 저 혼자 공부하려다보니 지금 제 수준에서 이 공부 방법이 맞는지 모르겠습니다. 저는 자료구조/알고리즘, 선형대수학, 통계는 어느 정도 알고 있습니다. 그런데 깊게 알고 있지는 않아서 그런지 공부하다 보면 막막한 부분들이 있습니다. 저는 현재 2가지로 나눠서 공부를 하고 있습니다. 머신러닝 이론 + 실전 코딩 경험 머신러닝 이론은 나중에 제가 실력이 쌓였을 때 많은 머신러닝 기법 중 해당 데이터에 적합한 기법을 고를 때 필요하다고 생각해서 공부 중입니다. '패턴인식과 머신러닝', '프로그래머를 위한 선형대수학', '프로그래머를 위한 확률과 통계'라는 3개의 책으로 머신러닝 이론을 공부하고 있습니다. 뒤에 2개는 어렵지만 천천히 진도는 나갈 수 있는데 앞에 책은 아예 이해가 안 되어서 1p 넘기기도 벅찹니다. 실전 경험을 쌓기 위해 'kaggle' 사이트에서 특정 contest의 다른 사람 코드를 분석해보며 공부하고 있습니다. 하지만 코드를 보면 왜? 라는 의문이 중간에 계속 들며 특정 코드를 특정 상황에 왜 사용했는지 이해가 안 되는 부분들이 많습니다. 데이터 관련 분야를 정한 건 아니기에 우선 기본적으로 다 할 줄 아는 육각형 인재가 되고 싶습니다. 그래서 다음 2가지에 대해 조언을 구하고 싶습니다. 1. 제가 하고 있는 공부 방법이 맞는지 궁금합니다. 어떻게 하면 더 효율적으로 실력을 끌어올릴 수 있는 지가 궁금합니다. 2. 앞으로 어떤 커리큘럼으로 공부해야 하는지 궁금합니다. 열정은 가득하나, 주변에 도움을 청할 곳이 없어 제 방법이 맞는지 의문이 들고 진도가 안 나가는 느낌이라 질문합니다.

개발자

#데이터분석

답변 1

댓글 0

조회 51

21일 전 · NickSoon 님의 새로운 답변

지금 상황에서 파이어베이스에 데이터를 저장할때 쓰는 알맞은 코드를 찾고 싶습니다.

유튜브 무료 강의 따라하며 코딩 독학하고 있는 사람입니다. https://youtube.com/playlist?list=PLfLgtT94nNq3PzZinqs9Afuiai--r5NB_&si=ck9wzApzjvUZDJ6T 코딩애플님 강의를 따라서 파이어베이스 기반 웹사이트를 만들고 있었는데, 어떻게든 따라가다가 웹페이지에 개시글을 작성해서 파이어스토어 데이터베이스에 저장하는 부분에서 막혀버렸습니다. https://youtu.be/yYtTZcjCj_o?si=mg_U0cKB_kHUMhef 제가 실력이 매우낮아서, 이 상황에 알맞는 데이터 저장방법을 못찾겠어가지고 이렇게 물어봅니다. 아래의 코드 부분, 그러나까 웹페이지에 올린 개시글의 데이터가 파이어베이스의 데이터베이스에 기록하는 부분을 작업하다가 막혔습니다.

개발자

#firebase

#visual-studio-code

#node.js

답변 1

댓글 0

보충이 필요해요 1

조회 29

일 년 전 · 익명 님의 질문

turbo Repo 빌드 속도 멀티레포 보다 빠를까요?

최근에 회사에 모노레포 도입하려고 터보레포에 대해 학습하고 있습니다. 공식문서 보면 빌드도 병렬적으로 실행할 수 있고 원격 캐시를 통해 변경된 코드에 대한 프로젝트만 빌드가 가능하다는 내용을 봤습니다. 공식문서 앞부분을 학습해 봤을 때 제가 드는 생각은 멀티 레포로 운영되는 하나의 프로젝트 코드를 수정하고 빌드 후 배포하는 시간보다 터보 레포로 빌드하고 배포하는 시간이 대체적으로 더 빠를 것이라 생각듭니다. 예를들어 모노레포에서 lint나 공용으로 사용하는 ui컴포넌트는 packages/ 에서 관리하고 프로젝트 코드는 app/project1의 구조의 형태를 가지고 있다고 가정했을 때 case1. 린트 코드 한 줄 수정하고 배포 - 터보레포: 린트 수정한 프로젝트에 대해서만 빌드 - 멀티레포: 프로젝트에 전체 코드에 대한 빌드가 실행 case2. 한번에 린트, 공통ui, 특정 프로젝트 코드 수정하고 배포 - 터보레포: 병렬적으로 배포해서 빠른 배포 - 멀티레포: case1과 같이 전체 코드에 대한 빌드가 실행해서 case1과 빌드시간이 비슷하다 개발은 next.js로 하고 vercel에서 배포하고 있습니다. 제가 위에 작성한 case처럼 터보레포가 빌드시간이 더 빠르게 될까요?? 추가로 next.js프로젝트 vercel에 배포했을 때 캐시전략을 사용할 수도 있는지도 궁금하네요. redeploy할 때만 캐시를 사용할지 선택할 수 있는 것만 알고있습니다. 물론 개발자가 설정한 캐시 전략과 경우에 따라 다르겠지만 대체적으로 어느 방식이 더 빠른지 궁금합니다.

개발자

#react

#모노레포

#monorepo

#next

답변 0

댓글 0

추천해요 2

조회 159

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

개발 공부를 어떻게 하는게 좋을까요? (feat. 프로젝트)

얼마 전 Next.js로 개인 프로젝트를 진행했습니다. 그런데 프로젝트를 진행해보며 제가 어떤 방식으로 개발 공부 뱡향성을 잡아야하는지 혼란스러워 질문드립니다 ,, 🙏 처음 Next.js 쓸 때는 복붙 ,, 같은 기능도 복붙해서 파일 여러 개 만들기를 하고, 서버 컴포넌트와 클라이언트 컴포넌트에 대해 잘 알지 못한채로 프로젝트를 했었습니다. (+ 상태관리나 ,, 이런 것도 아예 모르고 개발했었습니다 ,,) 이번에 제대로 공부해서 기능을 구현해보고 싶어 다시 시작해서 완성했습니다. 그런데 제가 작성한 코드를 다 이해하며 작성했지만, **제가 작성한 코드가 좋은 코드인지? 에 대한 의문이 생겼습니다.** 그래서 팀 프로젝트도 참여해보며 같은 프론트 팀원 분의 코드를 확인해보며 좋아보이는 부분은 참고도 했지만, 이 방법도 한계가 있었습니다. 더 잘해보고 싶어 빨리 보여져야하는 이미지는 이미지를 미리 로드한다거나, next/image로 이미지 최적화를 하고 최대한 코드 중복을 줄이고자 공통 컴포넌트들을 만들기 위해 노력하긴 했었습니다. (나중에 스토리북 이라는 라이브러리를 알게되어 이걸 사용해보지 못한게 아쉽긴 했습니다.) 그래도 많이 부족한거 같아 어떻게 더 나은 개발을 해야할지 잘 모르겠습니다 ,, 첫 프로젝트에서는 부트스트랩 외에는 사용해보지 않아 이번에 제대로 다양한 기술을 써보고자 시도도 해보았습니다. (> 서버 상태 관리를 위해 tansack query도 사용해보고 클라이언트 상태 관리를 위해 recoil을 사용하고, 스타일링에는 css in js가 궁금해 styled components, 직접 어느정도 깔끔한 디자인을 하고싶어 피그마 툴을 이용해보았습니다. 소셜 로그인도 넣어보고 몽고 db 사용하며 데이터베이스도 연결해보았는데 ,, 막상 완성하고 나니 제가 많이 부족하다는 생각이 들었습니다.) 🤔 제가 작성한 코드가 좋은 코드인지 ,, 더 나은 성능을 위해 어떤 개발을 하면 좋은지와 같은 부분은 제가 어떻게 학습하는게 가장 좋은 방법일까요? 또한 어떤 것을 더 배워서 적용해보는게 좋을까요? ,, (제가 생각했을 때 프로젝트를 완성은 했지만, 제 프로젝트의 매력적인 점이 없는거 같아 너무 아쉬운거 같습니다.)

개발자

#프로젝트

#next.js

#좋은코드

#공부방법

답변 1

댓글 1

추천해요 2

조회 200

6달 전 · 이상래 님의 새로운 답변

코딩을 하는 감각이 없는 것 같아요. 어떻게 이걸 해결해야 될까요?

안녕하세요. 1년반 정도 프론트엔드 개발자로 일한 경력이 있고 현재는 일을 하지 않는 상태 입니다. 이 경력을 짧게 설명드리면 회사에서는 리액트로 웹을 만들어야 하는 상황이였고 리액트를 할 수 있는 사람이 없어서 기존 만들어져 있는 템플릿을 구매하여 그걸 수정하면서 웹을 만들었습니다. 기초도 없고 그때 그때 필요한거 찾아 가며 웹만 돌아가게 했던 것 같아요. 하면서 이게 맞는지 왜 이렇게 되는건지 답답하게 일을 했던거 같아요. 하면서도 저는 코딩머리(?)가 없는거 같아요. 현재 이직 준비를 하면서 다시 리액트 강의를 들으면 공부 중입니다. 근데 가끔 강의에서 예제나 프로젝트 만들때 코드를 보면 잘 이해가 안갑니다. 뭐랄까 무슨 다른 나라 언어로 떠드는것 같고 대체 왜 이게 이렇게 되는걸까 하는 생각이 많이 듭니다. 코딩 실력 늘리기엔 혼자 뭐라도 만드는게 좋다고 하니 혼자 시작해보려고 하는데 이게 막막합니다. 검색을 하면 남이 만들어둔 코드들 있고 그거 가져다 사용하는 것도 내것도 아닌거 같고 작은 프로젝트 하나라도 내 머리로 돌려가며 직접 짜보고 싶은데 뭐 하나 못하는거 같아요. 이게 맞나요? 다들 잘 하는거 같은데 왜 저만 이게 안될까요. 개발자를 그만두는게 맞을까요? 제 자신이 너무 답답합니다. 남들처럼 술술 코드 짜고 만들어내고 싶은데 안되는데 대체 뭐가 문제일까요? 저 어떻게 이걸 극복할 수 있을까요? 클론코딩이라도 하는게 맞을까요? 제발 선배님들 조언 부탁드립니다

개발자

#react

#고민

#코딩공부

#이직

답변 2

댓글 0

조회 154

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

개발 속도가 너무 더딥니다

스프링부트로 백엔드 서버를 개발 중인 대학생입니다. 맨날 소스파일 한 두개 쓰는 장난 코드만 적다가 제대로 프로젝트 만들어보는 건 이번이 처음이에요. 코드 자체는 굉장히 간단한데 클래스 구조를 설계하는 과정에서 시간이 너무 많이 지체되는 것 같아서 고민입니다. 여기서는 인터페이스를 쓰는게 좋지 않을까, 얘는 상속 쓰면 겹치는 코드를 줄일 수 있을 거 같기는 한데 구조가 복잡해보여서 오히려 프로젝트가 더 복잡해지는 건 아닐까, 이 기능은 어떤 서비스 객체에 넣는게 더 자연스러울까, 어디에도 넣기가 부자연스러운데 차라리 서비스 객체를 분리할까 등등 만들면서 코드 짜는 시간보다 클래스 간의 구조를 짜는데 시간이 더 많이 걸립니다. 주변에 동기들 보면 금방금방 코드 짜고 포트폴리오 완성하는 것 같은데 저는 아무리 시간을 쏟아도 성과가 빠르게 나오지 않아서 걱정입니다. 최근에는 인터넷에 잘 만든 코드를 먼저 검색해본 후에 구조를 따라 하는 식으로 공부하고 있는데, 코드를 찾아보고 왜 저 구조를 쓴 건지 이해하는데 또 시간이 소모됩니다. 계속 이렇게 진행하는게 맞을까요? 너무 초조해요...

개발자

#spring-boot

#backend

답변 1

댓글 1

조회 104

2달 전 · 익명 님의 질문

서버 배포 시기 및 협업

안녕하세요, Django와 RN을 이용해서 팀프로젝트를 진행하고 있습니다. 아직 경험이 많이 없는 학생이라 AWS 배포는 처음입니다. (무료 호스팅만 이용해봤습니다) 현재 개발 초기 단계이고, 회원가입 로그인 정도만 API 개발된 상태입니다. 프론트에서 서버를 요청해서 AWS서버를 구축하려 하는데, 1. 지금 이 시기가 AWS 서버 구축을 하는 게 맞는지?(프리 티어여도 개발이 진행 중인 상황에서 서버를 벌써 시작하는 게 맞는 지 궁금합니다) 2. AWS 실제 서버를 구축하지 않고도 프론트와 백엔드의 연결 즉 API요청을 프론트 측에서 할 수 있는지? -> 서치해 본 결과로는 ngrok 등을 이용해서 서버를 구축하지 않고도 프론트가 백엔드의 코드에서 테스트 해볼 수 있다는 것 같은데 이 방법을 더 자주 이용하는 편인지, 다른 방법이 있는지 가 궁금합니다! 프론트도 백엔드의 코드를 받아볼 수는 있으나 RN개발 환경과 백엔드의 코드를 둘 다 띄우기에 컴퓨터 자체가 어렵다고 하여 서버 배포를 고민 중에 있었습니다.. 많이 헤매고 있지만 여기서 많은 도움 받고 있습니다! 경험해보신 분들의 조언 부탁드립니다!

개발자

#서버

#aws

답변 0

댓글 0

조회 26

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

1년차 이직 준비 관련 고민

선배님들 안녕하십니까. 저는 현재 금융관련 스타트업 회사에서 1년 남짓 근무한 병아리 개발자입니다! 현 회사에 백엔드 개발자 타이틀을 달고 들어왔지만 어쩌다 보니 프론트엔드도 다루면서 사실상 풀스택(?) 개발자로서 일하고 있고 여러가지 사정으로 9-10개월정도 후에 이직을 생각하고 있습니다. 현회사 입사후 바쁜 업무핑계로 자기계발에 전혀 쏟지 못했었는데, 두세달 전부터 각오를 다지고 나름의 계획을 짜며 커리어 개발에 노력을 조금씩 해보고 있습니다. 본격적으로 이직을 생각하다보니 입사후 초라해진 이력서와 녹슨 코딩테스트 실력 등등에 마음이 조급하고 혼란스러워 제 상황을 설명드리고 조언을 구하고자 글을 올려봅니다…! 현재 진행중인 저의 노력은 다음과 같습니다. 1. CKA 공부 사실 회사 들어오기 전까지는 쿠버네티스가 뭔지도 모르는 생초짜 학생이었습니다… 아무래도 회사 규모가 작다보니 버그가 생겼을때 주변의 도움없이 해결해야 하는 경우가 있었고 애플리케이션 코드 밖에서 발생하는 이슈들에 대응하며 무력감을 많이 느껴 운영/인프라쪽 공부를 조금 해보자 란 마음에서 시작한 노력입니다… 주니어 레벨에서 시간투차할 이유가 크게 없다고 조언해주신 분들도 종종 계셨지만…시작한 이상 꾸준히 해서 4월, 늦어도 5월 안에는 자격증 취득을 목표로 하고 있습니다. 2. 알고리즘 (코딩테스트) 원래도 그렇게 자신있는 종목이 아니었는데 1년동안 많이 까먹어서.. 틈틈히 풀면서 공부중이고 백준 기준 골드 초급문제 까지는 고민 많이 하면 풀 수 있는 수준 정도입니다 그리고 제가 염두에 둔 계획은 크게 다음과 같습니다 1. 새로운 프레임워크 배우기 저희 회사에서 제가 다루고 있는 프로젝트들은 전부 NodeJS 기반 (Next JS, Nest JS) 에서 이루어져 왔습니다. 학교다닐때야 언어라도 이것저것 간단히 다뤄봤지만 사실상 지금 제대로 다룰줄 아는 백엔드 개발 프레임워크는 Nest JS 밖에 없는것 같습니다. 근데 아무래도 한국에서는 Node 개발자의 풀이 그다지 넓지 않다보니 성공적인 이직가능성을 높이기 위해서 새로운 프레임워크를 익혀볼까 하는 고민이 됩니다. 그래서, 만약 배운다면 어떤 프레임워크를 추천하시는지 궁금합니다. 현재는 Spring + Java, Python + Django 를 후보로 생각중입니다. 조금 부연설명을 하자면 Java는 학교에서 초급레벨 수업들으며 2학기정도만 해봤고 Python 같은경우는 언어 자체는 익숙하긴 하지만 AI, 알고리즘 등 외에 제품 개발에 사용해본 경험은 전무합니다. 또한 저는 현재 병역특례로 근무중인 상황이라 이직을 하더라도 스타트업/중견 업체를 겨냥해야 합니다. 2. 프로젝트 제가 원래도 컴공 전공자가 아니다보니 깃헙/포폴들이 전부 통계나 AI 관련이고 개발 관련해서는 좀 약한편이었습니다. 그런데 인터넷에서 대단하신 분들의 이력서를 구경하다 보니 제 포트폴리오를 조금 보강해야하지 않나 하는 생각이 들더군요. 또 조금 더 욕심을 부리자면 위의 1번 질문에서 조금 더 나아가서 새로 익힌 프레임워크에 대한 숙련도를 증명하는 목적으로 프로젝트를 하나 시작하는 어떨까 하는 생각을 해보고 있습니다 쓰고나서보니 상황설명에 하소연만 실컷 하는 글이네요…ㅋㅋ 아무래도 주변에 조언을 구할 분들이 적다보니 이래저래 걱정을 많이 하고 있습니다. 제가 계획하고 있는 노력의 방향성이 바람직한지. 좀더 선택과 집중을 해야한다면 어떤 방식이 좋을지, 별도로 지적해주실 내용이 있는지 (ex. 새로운 프레임워크를 독학하기보다 지금 가지고있는 기술스택으로 더 완성도 높은 프로젝트를 해라). 선배님들의 귀중한 의견 주시면 정말 감사드리겠습니다 . 두서없는 글 읽어주셔서 감사합니다!!!

개발자

#이직-준비

#프로젝트

#이직

#기술스택-변경

#커리어

답변 1

댓글 1

조회 105

2달 전 · CP 님의 새로운 답변

백엔드 좋은 코드는 어디서 보나요?

백엔드를 공부하고 있는 대학생 3학년입니다. 현재 스프링부트로 친구들과(총 백엔드 3명) 스터디 후 프로젝트를 하려고 하는데요. 김영한님 무료 강의를 보니, 간단한 개념은 알겠는데 코드를 어떻게 짜야 할지 감이 잘 안 오더군요. 1. 김영한님 MVC 1편과 jpa 강의를 추가로 보고 프로젝트를 시작해야 할까요? (늦어도 6월까지 개발을 끝내고 싶습니다.) -> jpa 강의만 봐도 될까요? 2. 다른 좋은 코드를 보고 싶은데 어디서 어떻게 봐야하나요?

개발자

#백엔드

#토이프로젝트

답변 1

댓글 0

추천해요 1

조회 70

21일 전 · 일찍일어난벌레가빨리잡아먹힌다 님의 새로운 답변

스프링부트 코드 작성

연합동아리에서 활동 중인 대학생입니다. 프로젝트에서 스프링부트를 사용하는 백엔드를 맡고 있는데, 코드를 작성하는 법을 아직 모르겠습니다. 개념은 알겠으나 말그대로 로직을 직접 작성할때면 감이 너무 안오는데.... 공부를 어떻게 하면 좋을까요? 당장은 gpt한테 답변받은 코드를 위주로 쓰다가 오류가 생기면 그때그때 수정하고 있습니다ㅜ 장기적으로도 이게 좋은 방법은 아니라는걸 알겠는데 Service, Controller에서 로직을 써내려가기가 너무 추상적인 느낌이라 잘 모르겠습니다...ㅜㅜ 너무 답답하네요 스스로도

개발자

#springboot

#스프링부트

#백엔드

#웹개발

#공부법

답변 6

댓글 0

추천해요 3

보충이 필요해요 2

조회 1,462

2달 전 · CP 님의 새로운 답변

보통 신입 개발자에게 어느정도의 퍼포먼스를 바랄까요?

일한지는 이제 한달정도 되가는 백엔드 개발자입니다. 제가 목표가 그다지 높진 않았기 때문에 어려운 시장상황속에서 나름 만족할만한 곳에 취업도 했고요 현재 일하는 것도 만족하고 있습니다. 하지만 현재 제 상태가 괜찮은 것인지에 대한 의문이 많이 생깁니다. 우선 처음부터 거의 바로 프로젝트에 투입되게 되었는데요 자바 스프링부트로 진행하는 프로젝트입니다. 어느정도 다른분이 세팅해주신 코드스타일을 보고 따라가고는 있으나 따로 어떤 방식으로 개발하라는 것 등은 듣지 못했습니다. 제가 담당한 부분에 대해서는 간단한 정도의 컨펌을 받아가며 제가 설계하고 제가 기능을 구현하는 느낌입니다. 제가 의문을 느끼는 점은 이 부분입니다. 실무에 들어가기 전에는 제가 비록 학점도 좋진 않고 개발경험과 코딩실력이 뛰어난 편은 아니나, 그래도 개발적으로 적응하는 능력이나 코딩실력이 나쁘지는 않은 느낌이라고 생각하고 있었습니다. 근데 우선 생각보다 기획문서들이 불친절하여 기획의 온전한 이해도 난이도가 너무 높게 느껴지고, 사수분이나 다른 분들이 친절하게 질문을 잘 받아주시기는 하나 해당 내용들에 대하여 쉽다는 분위기로 말씀하셔서 저에게 어느정도를 기대하시는지 잘 모르겠어서 고민중에 있습니다. 프로젝트 상황도 급박하여 제가 제대로 제 몫을 못해내면 큰일날 것 같다는 느낌도 듭니다. 야근도 하면서 따라가려고 많이 노력하고 있으나 아직 갈길이 먼 것처럼 느껴집니다 신입 개발자로써 어떤 자세로 어떤 방향성을 가지고 나아가야할지 그리고 경력자분들은 신입에게 어느정도의 역량을 기대하시는지 궁금해서 질문드립니다.

개발자

#자바

#백엔드

#스프링부트

답변 1

댓글 0

추천해요 1

조회 281

2년 전 · 익명 님의 질문

테스트코드 작성 시 테스트더블 사용 vs 미사용 관련 질문이에요!

안녕하세요. 테스트코드에 관한 공부를 하게 되고 작성을 해보면서 의문이 들어서 질문을 드립니다. 테스트코드에 관한 얘기에서 항상 제목의 주제가 빠질 수 없는 것 같습니다. 둘 다 추구하는 바가 다를 뿐이지 틀리지 않았기 때문에 정답이 없다는 것은 알고 있지만 아직도 혼란스럽네요. 테스트코드에 관한 공부를 하면 항상 나오는게 유닛테스트, 통합테스트 등의 개념인데요. 도메인의 책임을 유닛테스트 하는 것까지는 쉽게 이해가 가는데 서비스 계층을 유닛 테스트 한다는 것이 조금은 이해(?), 수용(?)이 쉽지가 않네요. 서비스 로직은 필연적으로 외부 시스템에 의존할 수 밖에 없다고 생각을 하는데요.(DB, 외부 API 등등) 그러다보니 이런 것을 배제하고 Fake 객체나 Mockito 라이브러리 등을 사용해서 stubbing을 하고 테스트코드를 작성하는 것이 실제 운영 환경에서의 버그 혹은 문제 등을 올바르게 캐치하는 것이 가능한 것인가 하는 궁금증이 생깁니다. 외부 API는 매번 테스트코드를 돌릴 때마다 호출하는 것이 불가능할 수도 있으니 테스트더블을 사용하는 것이 크게 이상하다고 느껴지진 않습니다만, 저는 DB와 관련해서는 아직도 조금 혼란스러운 상황이네요. 실제로 테스트를 다 mocking 처리해서 작성을 해서 DB와 관련한 변경이 있을 때 테스트코드가 그걸 캐치 못 한 경험이 있는데 그 때 이럴거면 테스트코드 왜 짜지? 하는 의문이 들었던 적이 있습니다. 항상 유닛테스트가 중요하다고 다들 말씀하시는데 그러면 그 분들은 테스트코드를 작성하실 때 서비스 로직에서도 DB와 분리된 테스트더블을 사용하는 유닛 테스트를 작성하신다는 의미일까요? 아니면 테스트더블을 사용한 서비스 레이어 유닛 테스트 작성 + 테스트용 DB 혹은 h2 등을 사용하는 통합테스트 모두 다 작성해버리면 그만이니까 이런 고민을 하는게 의미가 없는 것인가? 하는 생각도 한편으로 드네요. 테스트코드를 작성하시는 다른 분들은 이 문제에 관해 어떻게 생각하시는지 궁금합니다 :D

개발자

#테스트코드

#테스트더블

#유닛테스트

#통합테스트

답변 0

댓글 0

조회 64

7달 전 · 이상래 님의 새로운 댓글

프론트엔드 취업에 대해 몇가지 질문있습니다.

안녕하세요 프론트엔드 취업을 준비중인 비전공자입니다. 취업관련 2가지 질문이 있습니다. 1. 작년 국비학원에서 백엔드팀과 협업 프로젝트를 했는데 당시 백엔드에서 스웨거를 이용하여 데이터를 받았는데 수료후에 스웨거 자체에서 오류가 있어 현재 배포한 프로젝트 주소로 들어가면 오류가 발생합니다. netlify로 다시 배포를 해서 나오긴하지만 이미지같은 데이터는 나오지 않는데 무슨 방법이 없을까요? 2. 국비학원 수료후 혼자 계속 공부한지 약 1년이 다되가지만 개발자분야로 취업이 힘들고 또 개인사정까지 생겨 정말 어쩔수없이 개발자분야가 아닌 단순업무 분야로 일을 다니면서 퇴근 후에 계속 프론트엔드 공부를 하고 있는데 인강을 보면서 할땐 코드가 해석이 되고 쉽다고 생각을 했는데 막상 혼자 코드를 작성을 할려고 하면 코드작성이 힘들더라구요. 혼자 코드를 작성한다고 해도 인강에서 봤던 코드를 외워서 적는 느낌도 드는데 혼자 코드를 작성할 수 있고 응용까지 가능한 공부방법이 있을까요? 실력이 많이 늘 수 있는 공부방법 조언부탁드립니다.

개발자

#프론트엔드

#개발자

#비전공자

#취업

답변 1

댓글 2

조회 99

2년 전 · 조용구 님의 새로운 답변

자바스크립트 코드 공부방법 질문입니다

안녕하세요 현재 저는 자바스크립트 기초를 공부중입니다. 자바스크립트 코딩 공부법을 너무 알고 싶은데 문법으로는 어느정도 이해도 되고 하지만 직접 코드로 작성을 할려고 하니 한개도 작성을 못하겠더라구요. 예를 들어 let response = await fetch(url,{headers:header}); let data = await response.json() news = data.articles console.log(news) 이 코드에서 처음에 let이라는 변수를 작성을 했는데 변수는 어떤건지는 알고 있습니다. 그런데 코드가 아무것도 적히지 않는 곳에 제가 코드를 작성을 할려고 한다면 이 변수는 언제 작성을 하면 될까?그리고 ({ }) 이런건 제가 이런걸 필요해서 혼자 작성 할 수 있을까? 이런 고민이 너무 많은 상태입니다. 또 ( ) 이런 괄호 안에 매개변수나 어떤걸 넣고, 이걸 또 어느코드에 전달을 해야되고 이 코드를 작성하면 어떻게 될것같다 이런게 하나도 없는 상태인데 혼자 코드 다 지우고 작성을 해봐야된다라고 해서 다 지우고 할려고 했지만 계속 너무 막막해서 코드를 작성하지 못하는데 현재 저 같은 상황에 어떻게 공부를 하면 해결이 될지 공부방법 조언과 공부방법을 자세하게 설명해주시면 너무 감사드리겠습니다.

개발자

#프론트앤드

#javascript

#공부방법

#기초

#코드리뷰

답변 2

댓글 0

추천해요 1

조회 264

일 년 전 · 박정환 님의 답변 업데이트

코드 작성 실력을 키우려면 어떻게 해야할까요

저는 현재 프론트엔드 개발자로 취업 준비 중에 있고, 최근 이력서 피드백을 받다가 협업 능력은 좋아보이나 프로덕션 레벨의 코드를 잘 작성하지 못할 것 같다는 피드백을 받은 상황입니다. 마음이 좀 많이 아프지만... ㅜㅜ 코드 작성 실력을 높이려면 어떻게 해야할까요? 그리고 코드를 읽었을 때 퀄리티가 좋다고 느껴지는 요소는 어떤 것이 있다고 생각하시나요? 취준생 입장에서 어떤 활동을 하면 코드 레벨을 올리는데에 효율적일지, 신입 개발자에게 기대하는 수준이 어느정도인지 궁금합니다. 그리고 코드 작성 실력이 늘었다고 느낀 계기나 타이밍같은게 있으신지도 궁금합니다. 미리 감사드립니다 🥲

개발자

#프론트엔드

답변 3

댓글 0

조회 205

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

GPT의존도가 심해서 고민입니다.. 백엔드 개발자 커리어

제가 Java+ Spring boot를 활용하는 서비스 어플 만드는 프로젝트에 참여해서 열심히 API를 구현중입니다 (회원가입API등) 근데 저는 스프링부트는 커녕 스프링도 해본적이 없습니다.(자바는 할 줄 압니다) 그래도 배포까지 하면 포트폴리오도되고 경험이라 생각해서 투입되어 개발하고 있는데 솔직히 저는 코드를 못짭니다.. 스프링을 약 일주일정도 공부하긴 했지만.. JPA 의존성 MVC 등등 개념은 조금 아는 상태지만 코드를 읽고 해석하는 것도 안되는 매우 부족한 상태입니다., 스프링 생태계에 대해서 아는건 없지만, GPT4 가 있기에 API 구현이 어느정도 되는 편입니다. 스웨거 같은걸로 테스트할때도 꽤 괜찮고 근데 문제는 이런식으로 코드를 짜는게 저한테 발전이 있는가 의문입니다. 제가 명령하면 GPT가 코드를 짜줍니다. 당연히 한번에 컴파일이 되진 않겠지요 근데 몇번 수정하다보면 어느정도 됩니다.. 저의 지식이 15%라고 하면 GPT4가 85% 지식을 추가시켜줘서 코드를 짜주고 구현을 해줍니다. 방학기간 한달 남짓한 시간이라 팀원한테 민폐가 안되려고 어쩔수없이 쓰고있습니댜.. 나중에 배포까지 됬을때 어떻게 포트폴리오로 사용해야하나 고민입니다. 지피티가 없는 시절 파이썬으로 프로젝트를 할때는 저의 지식50% 구글링50%으로 했다면 GPT는 거의 대부분을 의존해서 걱정입니다.. 요약 GPT의존도 심함 1.프로젝트 긴급 투입 어찌저찌 요구사항 구현중 2.코드는 GPT가 짜주고 본인은 실행만 시키는 수준 3. 본인에게 발전이 있을지.. 4. 포트폴리오로는 어떻게 활용을 할지

개발자

#자바

#스프링

#백엔드

#포트폴리오

#gpt

답변 2

댓글 0

조회 641

7달 전 · 이상래 님의 새로운 답변

코드 읽는 법 질문드립니다..

안녕하세요, 저는 만 2년 되어가는 주니어 개발자 입니다. 이제서야 이런 질문을 올리게 되는 것이 부끄럽네요. 질문드린 계기는 코드 리뷰를 할 때, 제가 올리는 코드 리뷰의 퀄리티가 아쉽기다는 생각이 들기도 하고, 코드 읽는(이해하는) 속도가 너무 느려서 고민이 되었습니다. 그리고 어떤 프로젝트를 파악할 때 남들보다 시간이 굉장히 오래 걸리는 것 같습니다. 그 이유는 코드로 구조를 파악하는데 소요되는 시간이 남들보다 길어서 때문이라고 느낍니다. 혹시 다른 분들은 코드를 어떻게 읽으시나요? 저는 소설책 읽듯이 왼쪽에서 오른쪽으로 한줄 한줄 읽어가는데 비효율적인 것 같기도 해서 고민입니다.

개발자

#코드리뷰

답변 2

댓글 0

조회 82

5달 전 · 익명 님의 질문

Revert를 한 후 코드가 꼬였다고 화를 내는 상사.. 제가 모두 잘못한 것일까요??

안녕하세요 이제 2년차가 되는 프론트엔드 개발자입니다. 최근 이직에 성공한 후 새로운 프로젝트를 맡아서 함께 협업하던 중 저의 실수로 develop에 있는 코드가 main에 머지 되었던 일이 있었어요. 그로인해 약 6시간 정도 main에 배포되어 작업 중이던 코드들이 실제 사용자에게 보여지게 되었습니다. 물론 오류 없는 작업물만 develop에 merge를 했기에 오류 자체는 없었어요. 그런데 문제는 그 후에 있었습니다. main에 잘못 머지되었던 커밋을 revert를 해달라고 해서 revert를 했습니다. 따로 confilct나 이슈 없이 잘 리버트가 되었고 리버트 후 동작 확인한 후에 정상 동작도 제대로 확인했어요. 그런데 그 후 작업 하시던 분이 코드가 누락되어 로깅이 제대로 안되었다고 저한테 화를 내시더라구요.. 제가 작업했던 부분과는 연관이 없었고 (리버트 시킬 때 상사분의 코드도 함께 리버트 되는 것은 확인했습니다.) 리버트로 인해 이렇게 까지 혼나야하는 것도 조금 속상하네요.. 저희는 일반적인 git flow를 따르지 않고 작업한 브랜치에서 각각 develop, main 브랜치로 각자 머지 시키는 방식을 사용하고 있습니다. 정말 궁금한 부분인데 제가 develop을 main에 잘못 머지시킨 것 뿐만 아니라 코드가 꼬인 부분에서도 책임이 있는 부분인가요?? 조금만 상세히 알려주시면 어떠한 쓴 답변이 와도 성장의 원동력이라고 생각하고 듣겠습니다! 경력이 적은 저로서는 아직 이해가 안가는 부분이라서요ㅠㅠ

개발자

#git

#git-flow

#revert

#git-revert

답변 0

댓글 0

조회 66

선배님들 신입 백엔드 포트폴리오에 대해 짧게만이라도 피드백 주실 수 있을까요?

안녕하세요. 저는 현재 4년제 대학은 졸업하고 취업을 준비하고 있는 학생입니다. 백엔드에 대한 분야는 3학년 2학기에 처음 접하였고 공부를 진행하며 관련 프로젝트를 2개(1개 완료, 1개 진행중)를 진행하였습니다. 가장 큰 고민점은 하나의 프로젝트만 강조할 수 있을때 어떤것을 내세우는것이 더 좋을지에 대한 판단이 되지 않습니다. 한 프로젝트는 1년동안 진행하였고 현재도 진행중입니다. 백엔드 팀원은 절 포함하여 2명이 있고 반년동안은 단일한 서비스로 구현, 반년은 서비스 런칭 및 확장을 위해 단일 서비스를 MSA로 재설계 하여 구현하였습니다. 설계에 많은 공을 들였지만 미숙한 부분도 많고, 아직 리팩토링을 진행중이라 코드가 난잡한 부분이 존재합니다. 나머지 하나는 저혼자 백엔드를 담당했고 제 지식의 한계 내에서는 리팩토링을 진행하여 코드가 좀 더 깔끔하다고 생각합니다. 그 어떠한 피드백도 정말 감사할것 같습니다. 혹시 도움주실 수 있을까요? https://thene.notion.site/1b58113bb5c38054b490daf88cb4a12e?pvs=4 원래는 앞단에 개인정보및 자기소개부분이 있지만 제외하였습니다!

개발자

#포트폴리오

#피드백부탁드립니다:)

#백엔드

#취업

답변 1

댓글 0

조회 35