본문 바로가기

Silicon Valley Online Internship Program

0107

wanted 개발자 뽑는 사이트

indeed.com - 미국 취업 정보

 

design doc 피드백

개발기간, 목표는 개요 x
목표에 문제점
개요에서 4-5줄 요약

문제점 - 기존 서비스에 문제점
문장으로

시스템 아키텍처 너무 단순
(프론트 엔드, 백엔드)

draw.io 로 그리기

앞에 유저, 프론트, 백
도커, rest api 

phase 1
api
phase 2
머신러닝
극단적인 거만 분리해도 됨
데라비스보다 퍼시스트?

유저 인터페이스 빼기

아키텍처보다 시스템 피처 먼저
시스템 피처 말고 어플리케이션
디테일하게

poc 첫번째 아키텍처에서 박스치기

구현기간 빼도된다

구현기간 대신 마지막에 마일스톤 (프로그램 절차) - 활동이라하지말고 액티비티 / 엔지니어링 스텝? , 길게쓰기

기능
security
기술. tensorflow 등 구체적으로

service design doc 말고
technical design doc

서비스 말고 어플리케이션

data set 같은 용어들 쓰기

 

medium.com 에서 쓰는 용어들

 

항상 전문 용어들을 잘 알아서 써야됨

flaks api
blocking - 한명이 쓰면 다른사람 못들어옴
nonblocking (asynchronous) - 대용량 서비스

까는거 방어할려고 만드는게 design doc

용어 바꾸고 technical 하게
train data set
validation 비법 찾아보기
decision tree?


postgreSQL / mysql
이미지 특화 db로
gunicorn



서버에 올렸던 이미지들 모두 디비에 넣어서 판단 결과에 따라 보여줌

크롤링해서 서버와 따로 바로 학습?


mvc 구조

 

 

개발자취업 특강

개발자 취업 전문 강사님

대기업 취업 위해선 해당 기업의 교육 프로그램 참가 -> 거기서 잘하면 뽑힘
포트폴리오 중요

실력이 느는 것은 스타트업
진취적인. 새로운 아이템 시작해보고 싶다면
대기업은 개발 관리 등 업무
안정적이면서 체계적으로 성장하고 싶다면
네이버, 카카오 같은 digital native (원래 it) 회사는 관리 업무보다 실제 개발 업무 -> 대기업 타케팅한다면 이런 회사로
=> 본인 성향 따라서 선택

중소기업은 실력도 쌓고 아무튼 애매한 포지션

전공자면 이정도는 해야되는거 아냐?기대치 높아짐. fundamental 한것들. 프로젝트 완성도가 높아야 한다거나

대기업
채용 프로세스 체계화
이력서, 자기소개서 문서 엄마아빠가 봐도 이해할수 있게 쉽게 써야함. 인사담당자 전공자 아닌 경우 많음
코딩테스트가 실력을 보장하는건 아니지만 이걸로 거르기 때문에
서류, 코테가 갖춰져야함
작은 회사는
 면접을 잘봐야됨. 질문하면 실력 알 수 있기 때문. 면접관에 의해 판단됨. 형식적인건 최대한 안하려고. 경험과 실력 위주로 준비
배웠던거 잘 준비해 놓는다던지,
면접 스킬

전공자는 넓은 지식보다 깊게 파는것. 좁고 깊게 가는 모습 보이면 좋다. 프론트/백 엔드 뭐 해봤는데 이게 나한테 맞는것 같다 등. 좁고 깊고 난이도 높은것
비전공자는 넓고 domain 지식이 있다는것 보여주면 좋다

이력서는 깔끔하게만 쓰면 됨
준비해야할건 it 포트폴리오!!
프로젝트 한거 잘 정리해 놓기
이런 문서 준비해 놓는게 중요

포트폴리오
ppt 기반, pdf 로 변환한 문서
내 개발 산출물 쉽게 보여줄수 있는 작품집 (대표적인게 github. github는 how 관점)
ppt는 결과 중심적. 이렇게 만들었어
github랑은 용도가 다르다
문서에 github 링크 첨부

대기업은 오픈소스보단 상용 프레임워크 선호 (java 같은 언어 쓰는 사람들 선호) (면접까지 가야)
채용은 채용, 현업은 현업
본인이 원하는 포지션 할거라고 생각하면 안된다
원하는 포지션 있으면 그걸로 포트폴리오 잘 준비되어 있어야함
네이버, 카카오 또한 모듈별로 모듈 제일 효율적으로 쓸수있는 언어 사용한다고 한다
작은 기업은 오픈소스로 빠르게 개발하는것 (생산성 높은 언어)
본인이 잘 한거로 현업 투입됨
계속 있을수록 기술스택 바꿀 가능성 크다

깃허브 커밋메시지 - 컨벤션 쓰는게 좋다. 회사마다 본인 컨벤션 공유 해놓았다

git 할때 merge 잘 안쓴다. 지저분해짐. 리베이스 해라 (리베이스 익히기)

이직
실리콘벨리 따라서
이직주기 짧아지고 있음
경력 약간만 있어도 러브콜 많이 받음
본인 원치 않아도 실력 있으면 제안 많이 받게된다
스타트업, 대기업 다녀도. 2-3년 경력 부터 제안 많이 받게된다
->초봉 낮아도 기업들은 2-3년차 가장 선호. 즉시 투입 가능. 한 조직에 너무 오래있지 않았어서 다시 케미 만들어갈수 있다. 그때부터 이직 주기 들어갈수 있다는것. 너무 짧게 가면 아직 한국은 보수적이기 때문에 최소 1년, 권장은 2년에서 3년까지가 적당.


일찍 현업->경력 / 대학원
일반적으론 경력자가 더 우대받는다
특정 회사는 석사 이상 학력 있어야 채용 (연구 중심회사, 정부 보조->특정 난이도 높은 솔루션 개발)

다른 분야 이직 - 결국 또 포트폴리오. 해당 분야 해봤다는 3개정도 프로젝트 -> 포폴
왜 원래 분야말고 이 분야로 하려고 하는지 스토리텔링. 이유가 명확해야 한다

포폴 작성
철저하게 내 scope으로 쓰는것. 내가 한것만 쓰는거다. 나에대한 문서니까
팀플 했으면 내가 한 일만 적는것
내 중심으로 적는다는 원칙 갖고
프젝마다 특성 있어야함. 이건 완성도가 높아, 이건 내가 리더십 발휘 -> 면접에서 재밌게 얘기할수 있게 -> 구색을 갖추는것
작품 다 똑같은거 넣기보다 구색 - 배운점이 있는것 / 결과물이 좋은것 / 망했지만 많은걸 배웠다 => 면접관이 물어보면 이때다 하고 얘기한다
면접관한테 제발 이걸 물어봐주세요 하는거다 -> 재밌고, 우리회사에서 실패해도 성장하겠구나

대학원 필요한 이유 - 논문 읽을수 있어야함. 자기가 써봤어야 읽을수 있다. 뭔가 만들면 논문으로 한번씩 내야한다 회사에서. r&d 분야에선 그래서 석사, 박사 선호. 인공지능, 딥러닝 등


희망 직무 구체적. 프론트/백엔드, 머신러닝(자연어 / 검색엔진), 데브옵스 등 포지션 잘알고 그 중심으로 문서 꾸미는게 좋다
풀스텍이 가장 선호됨
언어에 대한  거부감 없고 깊지 않아도 넓게 알수 있는 직무
프론트 엔드 - ui/ux 개념, 사용자 관점 설계 (공감능력 필요). 언어뿐만 아니라 고객 이해할수 있는 스킬 필요함.
백엔드 - 알고리즘, 자료구조 등 전공자로서 배웠던 베이스 십분 활용됨. 하고싶어하는사람 제일많다
-> 프론트엔드 지원 적고 백엔드 많다
데이터 엔지니어
데이터 생성, 수집, 처리, 의사결정
머신러닝보다 클라우드 엔지니어, ai/vr (게임 관련됨) 엔지니어 더 많이뽑는다

=>중요한건 본인이 하나 픽해서 사전조사, 그 엔지니어처럼 보이도록 문서, 취업준비 하는것이 중요

고객 가까운 업무 할수록 관리자 역량 갖추는게 더 쉽다 (프론트엔드)
프론트엔드만 하면 관리자 쉽지않다
영역을 넓혀야 함
프론트엔드 국내 5년 뒤쳐짐 다른 나라(중국도)에 비해. active x 때문에..

전에는 개발자 수명 짧다고 했지만 지금은 개발자가 부족하고 점점 수명이 늘어나는듯 -> 수명은 길다

포폴 구성
개인보다 팀플이 더 점수 높다
몇명이 같이했는지, 기여도 (너무 밸런스 깨지면 안됨. 네명이면 내가 좀더 30%정도), 기여한 부분
커뮤니케이션 능력은 스토리텔링으로. (ex. 지라 사용하여 어려움 해결했다 등)

자기소개만 들어도 안다. 말을 얼마나 조리있게, 부드럽게, organize 하여 말하느냐 매우매우 중요!!!!
부드럽게 자기 pr

개인 프로젝트도 필요하다
팀플땐 내가 실수하면 피하가지만 개인프젝은 내가 맘껏 시도 가능

프로젝트 평가기준
완성도
알파, 베타, 완제품
버전을 객관적이고 정직하게 써야한다
알파(핵심기능만 포함. 사용자 니즈 제공)
난이도
실용성 - 가장 중요하다고 생각하심. ui 구려도 필요있으면 쓴다.

백엔드 개발자 포폴
로직 순서도, erd 등 넣어도 된다
스웨거 추천!

실력 어느정도 되면 커뮤니케이션 잘 되는사람 선호

1. 내가 하고싶은게 명확했다
2. 기술면접 잘함. 준비한거 나옴
* 그렇지 않다고 해도 본인이 이 포지션 하고싶다고 말해야함. 포지션 정해서 취업전선에 나가야함. 

url 안들어가볼 가능성 크기때문에 캡처가 가장 효과적
면접 갔으면 인사담당자가 다 봤을것, 면접 못갔으면 안눌러봤을것
눌러보기 전까지 어그로 끄는건 캡처본. 회사와 연관성 / 완성도 높음 / 기발함 등

pdf 포폴이 가장 좋음. 노션같은거 안열리기도 하니까 무조건 pdf. 출력 가능한 형태로

자기소개 - 슬로건 짧게 한문장. 본인 원하는 직무와 자기 장점 연관 키워드. 
어차피 개발자한테 자기소개 길게 원하지 않음.
데드라인보다 빠른 풀스텍 엔지니어, 내가 죽으면 서버가 죽는다 등

포폴
연관성  없는 정보 넣지 마 (백엔드 지원인데 프론트엔드 넣는거. 버릴줄 알아야함)
객관성 (언어 어느정도 하는지 근거. java 기반 소규모 프젝 3개 이상 참여 등, 깃허브 링크, 실제 코드 등)
정직성 (내가 다 한것처럼 쓰면 망한다. 내가 안한거 물어볼 가능성 높으니까. 내가 한거 솔직하게 쓰기)



내가 실력을 쌓으면 러브콜은 오기 마련. 코딩에 집중. 내가 원하는 제품 만들어 보는거

자기소개서에서는 내가 이 회사에 왜 지원하는지 동기가 명확해야함. 내가 왜 이 회사

 

자료조사



<MySQL 과 다른 postgreSQL 의 특징>
JOIN 성능이 더 좋다
PostgreSQL이 좀더 큰 규모에 사용되고, 안정적
json type 도 지원
복잡한 쿼리를 요구하고, insert 위주의 대규모 서비스인 경우에는 PostgreSQL

이미지 양 많으면 db보다 filesystem

stackoverrun.com/ko/q/226187

 

database - 이미지 저장 : DB 또는 파일 시스템 -

필자는이 점에 관해서 약간의 글을 읽었지만 필자의 경우 가장 좋은 해결책은 무엇인지 이해할 수 없다. 새 웹 응용 프로그램을 작성하기 시작합니다. 백엔드는 1000 만 개의 이미지을 제공 할 예

stackoverrun.com

 

nosql
NoSQL은 일반적으로 API를 호출하여 저장
장점 - 데이터를 읽어오는 속도가 빨라집니다. 
읽기(read)처리를 자주하지만, 데이터를 자주 변경(update)하지 않는 경우
데이터베이스를 수평으로 확장해야 하는 경우 ( 즉, 막대한 양의 데이터를 다뤄야 하는 경우)

mongodb, cassandra\


<프로그램 절차 - DB>
1. 이미지의 유해성 판별 후, 해당 이미지의 URL과 판별 결과를 서버의 DB에 저장한다.
2. 클라이언트 요청 시, DB에 접근하여 저장된 URL의 이미지를 카테고리별로 출력한다.

프로젝트 초기에는 DBMS로 MySQL 을 사용하고, 이후 어플리케이션의 확장, 배포 시에는 보다 많은 양의 데이터를 다뤄야 하므로 postgreSQL 로 변경을 고려한다.

<Docker 설명>

Docker 를 통해 Flask, node.js, MySQL 의 개발환경을 구성하고 어플리케이션을 배포한다.

 

Flask Database 참고사이트

has3ong.github.io/flask-database/

 

Flask Database

이 포스트는 Flask Web Development를 바탕으로 작성하였습니다.

has3ong.github.io

 

사용자는 url 형식 또는 로컬 파일 형태로 이미지를 입력한다
서버는 전달받은 이미지 데이터를 이미지 판별 함수로 전달한다


kakao Vision API 중 AI 기반의 Adult detector API를 통해 해당 이미지의 노출 정도를 기준으로 특징을 처리하여 과한 노출, 부분 노출, 또는 일반 이미지에 해당하는 정도를 판별한다.

'Silicon Valley Online Internship Program' 카테고리의 다른 글

0109  (0) 2021.02.22
0108  (0) 2021.02.22
0106  (0) 2021.02.22
0104  (0) 2021.02.17
0주차  (0) 2021.02.17