개발하면서 처음으로 정식으로 출시한 서비스를 만들어보았다.

대학교에서 다양한 프로젝트를 했지만 실제 사용자들을 대상으로 제작하고 배포한 서비스는 처음이다.

현재 Ionic framework를 활용하여 웹, Android, IOS에 전부 출시할 예정이며 웹으로 먼저 출시했다.

웹보다 어플로 나오면 사용하겠다는 피드백을 가장 많이 받았다. 얼른 구글 스토어에 검토가 완료되면 출시해야겠다.

간단하게 서비스에 대해서 정리하자면...

개발 목적

모여봐요 동물의숲을 이용하는 유저들간의 제대로된 거래 플랫폼이 존재하지 않았다.

해외에는 이미 거래 플랫폼이 있었지만 국내에는 네이버 카페나 DC 갤러리, 카카오톡 오픈채팅방을 사용하여 거래를 하고있었다. 거래량은 1분에 10건 정도의 게시글이 올라올 정도였다. (지금은 많이 식은듯 하다) 이렇게 많은 사용자들이 사용하다보니 사기꾼도 많았고 그에 따른 처벌 또한 없었다. 이런 문제점을 해결하기 위해서 개발 시작!

서비스

거래 물품을 등록하면 다른사람들이 1:1 채팅을 걸어오면 물건을 판매, 구매, 교환하는 방식의 웹앱이다.

사용 기술

Front Back Database Server
Vuejs Nodejs MySQL AWS
Ionic Socket.io    

 

느낀점

졸업작품을 개발할 때 회원가입, 유저간의 소통환경 이런 것은 대충 만들고 높은 기술을 활용한 퍼포먼스에만 집중해서 개발했다. 주로 회사에서 놀라는 것은 높은 기술력이였고 학교에서는 IoT, Blockchain과 같은 기술을 요구했다.

하지만 이번 프로젝트를 통해서 졸업작품은 정말 현실성없는 서비스라는 생각이 많이 들었다.

실제 사용자들에게 배포할 서비스에서 로그인에는 생각보다 섬세한 작업이 필요했다. 사용자들이 바라는 것은 Blockchain, Ai등을 활용한 편리한 서비스가 아닌 안정적이고 그들이 관심있는 분야의 서비스의 제공이었다.

배포 환경을 구현하는 것 또한 생각보다 시간이 많이 걸렸다. 업데이트를 할 경우 서버 다운시간을 최소화하기 위해 AWS의 Elastic Beanstalks에 대해 공부하고 Docker에 대해서 많이 배울 수 있었다.

물론 높은 기술을 사용해서 퍼포먼스로 사용자에게 만족감을 주거나 효율적인 알고리즘으로 서버의 무게를 덜어주는 것도 중요하지만 기본이 가장 중요하다는 것을 알 수 있었다.

'Life > Sundries' 카테고리의 다른 글

Toss 토스 NEXT 주니어, 신입 공채  (0) 2020.07.22
Kakao adfit 승인 완료!  (0) 2020.07.20
카카오 견학 가보고싶어...  (0) 2020.07.19
취미로 독서를...  (0) 2020.07.16
신작 게임 블루프로토콜!  (0) 2020.06.19

[ 주의 ] 삽질하면서 코딩한 경험을 바탕으로 작성한 것임으로 틀린것도 많으니 더 좋은 정보가 있으면 알려주세요!

[ 잡담 ]

요즘들어 새로 시작한 프로젝트가 있어서 12시에 기상해서 새벽 4~6시까지 코딩만 죽어라 하고 있다.

실제로 유저들에게 상용시킬 서비스를 제작하는 것이란 대학교 때 졸업작품을 개발하는 것과는 비교도 안될 정도로 많은 변수를 생각해야하기 때문에 시간이 많이 든다.

덕분에 정말 많은 삽질을 하고 있다. 하지만 이 삽질 끝에 문제를 해결하고 잘 작동하는 모습을 보면 너무 너무 재밌다.

그럼 본론으로 들어가 Multer에 대해서 알아보겠다.

+ 지금까지 Multer를 사용하면서 겪은 3가지 삽질

[ Multer ]

정의: Multersms Multypart / form-data 형식의 Request을 다루기 위한 Node.js 미들웨어이다.

설치

> npm install --save multer

1. Formdata 받기

나는 처음에 Multer의 존재를 몰랐다. 프론트에서 Formdata를 axios로 넘겨줬지만 req.body, res.file, res.files 전부 console.log로 찍어봤지만 빈값만 들어가 있었다. 이게 새벽 2~4시까지 골머리를 썩혔다.

찾다 찾다보니 Multer라는 친구를 발견했고 아래와 같이 작성해주면 formdata 값을 받을 수 있다고 해서 적용해 봤다.

1) single

  • 파일 한 개만 받을 경우에 사용한다.
  • req.file에 이미지 데이터가 담겨있다.
  • avatar는 formdata.append("avatar": value); 에서 value의 key값을 의미한다.
app.post('/profile', upload.single('avatar'), function (req, res, next) {})

2) array

  • 여러개의 이미지 파일을 하나의 key값으로 받아올 수 있다.
  • 구분없이 여러개의 이미지를 받을 때 좋은듯?
  • req.files에 데이터가 담겨있다.
  • 12 숫자는 넘겨 받는 이미지 갯 수를 나타낸다. 한계를 정해두고싶지 않다면 그냥 key값만 적으면 된다.
app.post('/photos/upload', upload.array('photos', 12), function (req, res, next) {})

3) fields

  • 전체적으로 array와 큰 차이를 모르겠다. 확장 버전인듯?
  • key값을 구분하여 데이터를 분류해서 받고 싶다면 사용하자.
  • req.file에 데이터가 담겨있다.
var cpUpload = upload.fields([{ name: 'avatar', maxCount: 1 }, { name: 'gallery', maxCount: 8 }])
app.post('/cool-profile', cpUpload, function (req, res, next) {})

4) none

  • 안써봐서 몰라.
  • text만 담긴 formdata 받으라고 한다.

5) any

  • 마찬가지로 안써봄.
  • 유선으로 오는 모든 파일 다 받을 수 있다고 적혀잇다.

2. 그래도 값이 넘어오지 않는 경우

자! 열심히 알아봤다. 이제 받아져야지? 라고 생각한 나의 실수였다. 계속해서 데이터가 넘어오지 않았다. 여기서 삽질 또 시작.

문제는 프론트의 axios에 있었다. axios를 사용하면 받아지지 않았지만 아래의 코드를 사용하니 값이 넘어왔다.

var req = new XMLHttpRequest()
var file = new Blob(['This is a test'], { type: 'text/plain' })
var data = new FormData()

data.append('photo', file, 'test.txt')

req.open('POST', '/upload')
req.send(data)

3. 저장 폴더를 유동적으로 바꾸기

난 aws s3에 이미지 파일을 저장해야했기 때문에 multer-s3도 사용했다.

multer의 구조는 좀 이상했다. 프론트로 받은 데이터를 기반으로 이미지가 저장될 폴더를 만들고 싶었지만 

app.post('/image', s3.upload.single('avatar'), function (req, res, next) {})

이렇게 req로 받기도 전에 파일에 저장을 때리는데 어떻게 하란 말인가...

그래서 아래와 같은 방법으로 파일명을 고쳐보기로 했다.

/* router file */

const express = require('express');
const router = express.Router();
const ctrl = require('../api/c_board');
const multer = require("multer");
const {new_s3_storage} = require("../utils/u_s3_storage");


// s3를 빈 값으로 선언했더니 아래 라우터에서 빈 값에 
// array() 함수가 없다고 에러가 떠서 저장 폴더가 고정된 s3객체를 넘겨줬다
let s3 = require("../utils/u_s3");

// 해당 middleware부터 먼저 실행되고 아래 /image가 실행된다
router.use('/image', (req, res, next) => {

    // 프론트로부터 받은 데이터
    var bo_id = req.headers.bo_id;
    
    // 데이터를 매개변수로 넘겨 새로운 s3 storage 객체 생성
    var s3_storage = new_s3_storage(bo_id);
    
    // 기존 s3에 새로만들어진 s3 storage로 덮어준다
    s3 = multer({ storage : s3_storage });
    
    next();
})

router.post('/image', s3.array('img'), ctrl.image);

module.exports = router;

middleware를 사용해서 /image로 들어가기 전에 header 값으로 프론트로부터 받은 데이터(req.headers.bo_id)로 새로운 storage 객체를 만들어 s3에 덮어씌울 계획이었다.

 결과는 실패!

let s3 = require("../utils/u_s3"); 값이 middleware에서 아무리 덮어씌어도 안바뀌더라.

그렇게 구글을 이리저리 떠돌면서 해답을 찾던 도중 정답을 발견했다.

▼ 완성 코드

/* router file */

// lib
const express = require('express');
const router = express.Router();
const ctrl = require('../api/c_board');

// modules
let s3 = require("../utils/u_s3");

router.post('/image', s3.upload.array('img'), ctrl.image);

module.exports = router;

/* ../utils/u_s3.js */

// lib
const AWS = require('aws-sdk');
const multer = require('multer');
const multerS3 = require('multer-s3');
const path = require('path');

// config
const aws_crediential = require("../config/aws");

const s3 = new AWS.S3(aws_crediential);

let params = {
  Bucket: 'deac-project',
  ACL: 'public-read-write'
};

let s3Storage = multerS3({
  s3: s3,
  bucket: params.Bucket,
  key: function(req, file, cb) {
    // 요거 하나로 해결
    var bo_id = req.headers.bo_id;
    let extension = path.extname(file.originalname);
    let basename = path.basename(file.originalname, extension);
    // 아래 코드에서 header로 받은 bo_id를 활용하여 저장되는 파일이 유동적으로 바뀜
    cb(null, `images/${bo_id}/${basename}-${Date.now()}${extension}`);
  },
  acl: 'public-read-write',
  contentDisposition: 'attachment',
  serverSideEncryption: 'AES256'
});

exports.upload = multer({ storage: s3Storage });

그냥 multerS3에 있는 key 함수에서 req.headers.bo_id를 사용하니 불러와졌다.

multerS3안의 key함수의 req에도 프론트에서 보낸 데이터가 똑같이 포함되어 있을 줄은 몰랐다.

file데이터만 있을줄 알았는데...

 

이렇게 삽질이 끝났다.

 

출처

https://velog.io/@josworks27/2020-01-18-0001-%EC%9E%91%EC%84%B1%EB%90%A8-qrk5iamlmv

아마존 웹 서비스의 기원  

  IT에 관련된 지식이 없는 사람에게 아마존(Amazon)이 어떤 기업이냐 물어본다면 '세계에서 가장 큰 온라인 오픈마켓이 아니냐?'라는 답변이 돌아올 것이다. 틀린 말이 아니다. 하지만 과연 쇼핑몰 하나만으로 구글-애플을 제치고 브랜드 가치 1위의 기업에 거듭날 수 있었을까? 

  초기 아마존은 온라인 오픈마켓만을 운영했었다. 기업의 규모가 점점 커지면서 '블랙 프라이데이'와 같이 할인 행사 기간에 웹 사이트에 많은 사용자가 몰려들어 서버에 과부하가 걸리기 시작했다. 사용자들에게 불편함을 덜어주기 위해 아마존은 막대한 양의 서버를 사들였다. 

  서버 문제는 사라졌지만 트래픽이 몰리지 않는 날엔 그 많은 양의 서버를 돌릴 필요가 없었다. 그래서 아마존은 놀고 있는 서버를 개인, 기업들에 비용을 받고 대여해주는 사업을 시작하게 되었다. 2002년 아마존 웹 서비스를 시작했다.

 

아마존 웹 서비스란?

  아마존에서 제공하는 클라우드 컴퓨팅 서비스

  쉽게 설명하기 위해 내가 좋은 아이디어가 하나 떠올라서  IT사업을 진행한다고 가정해보자. 24시간 동안 내 서비스를 제공하기 위해서는 24시간 동안 작동되는 서버 컴퓨터가 필요하다. 매우 작은 프로젝트라면 컴퓨터 한 대로 충분할 것이다. 하지만 일반적으로 웹 서버, 데이터베이스 서버 등 많은 서버가 필요하다. 이 서버들을 들여놓을 초기 자금이 없다면 시작도 전에 포기해야 할까? 또 처음에는 평균 사용자가 100명이었는데 100,000명으로 늘어나면 서버를 확장하기 위해 얼마나 번거로운 작업이 많이 필요할까... 

  AWS를 사용하면 이런 문제를 쉽게 해결해 준다.

  1. 비용 절감

  AWS에서 이미 다양한 성능의 서버를 가지고 있기 때문에 내가 원하는 성능에 맞춰 커스텀 하여 우린 돈을 주고 빌리기만 하면 된다. 휴대폰 살 때 「일시불로 긁을 것이냐」 「할부로 천천히 낼 것이냐」 의 차이라고 보면 될 것 같다.

  2. 확장성

  상황에 따라 서버를 확장하거나 감축할 때 마우스 클릭 몇 번으로 정말 쉽게 처리할 수 있다. 

  AI, Blockchain, IoT 등 다양한 클라우드 서비스를 제공하고 있다. 이러한 다양한 서비스를 쉽게 연동 할 수 있도록 서비스를 제공하고 있다.

  3. 안전성

  서버를 전 세계 곳곳에 설치해 뒀기 때문에 자연재해로 회사가 사라져도 서비스를 안전하게 운영할 수 있다. 

  무엇보다 비용 절감에 있어서 메리트가 있기 때문에 다양한 스타트기업이 AWS를 활용하여 새로운 사업을 시작한다.


전하고 싶은 말...

  나(글쓴이)는 대학생 때 처음 AWS를 알게 되었다. 자취방에서는 전용 서버가 한 대 있었다. 서버용으로만 쓰는 것이 아니라 게임도 하고 웹툰도 보고 다양한 용도로 사용하다 보니 매일 켜두는 것도 컴퓨터에 부담이 가는 것 같고 프로젝트를 진행하던 도중 서버가 다운되거나 하면 너무 불편할 것 같아 클라우드 컴퓨팅 서비스에 대해서 찾아보게 되었다. 하지만 당시 구글링에 서툴렀던 나는 온통 영어로 된 검색 결과에 지쳐 온라인 수업을 통해서 AWS를 공부하기 시작했다.

나처럼 처음 AWS를 접하고 고군분투하고 있는 사람들에게 조금이나마 도움이 되길 바라는 마음으로 글을 작성한다.

 

출처: https://jobc.tistory.com/113

취업 준비

 

면접 본 회사는 총 4개이다.

라쿠텐라이플소프트뱅크렌트락스... 였나?

 

이제 면접 본 순서에 따라 적어나가겠다.

 

마지막에 소프트뱅크 면접 스크립트, 포트폴리오, 사업계획서 첨부.


 

1. 라쿠텐

 

  라쿠텐은 총 3번 지원했다. 라쿠텐은 부서에 TO가 생기면 즉흥적으로 공채를 열기 때문에 기회가 아주 많다.

 

  첫 번째는 라쿠텐 전기부서에서 학교에 찾아와 채용을 진행하였다.

 

  지원자가 매우 적었기 때문에 서류는 전부 통과했고 1차부터 면접을 진행하였다. 일본 기업 첫 면접이었다.

예정은 1차 면접, 2차 면접만 보고 채용할 계획이었지만 마지막 영어 면접이 추가되었다.

 

  ※ 1차 면접

  그룹으로 들어가서 아주 간단한 코딩 테스트를 진행하고 회사에 대해서 질의하는 시간을 가졌다.

코딩 테스트는 쉽게 풀 수 있었고 질의 시간에는 다른 면접자가 이야기할 땐 열심히 청취하고 궁금한 부분을 질문하였다. 1차 면접은 쉽게 합격하였다.

 

합격!

 

  2차 면접

  1(나):2(면접관) 면접이었다. 면접을 시작하고 또 문제를 풀게 하였다. 시간이 여유로운 사람은 3문제. 촉박한 사람은 2문제를 풀었다. 면접 내용은 전반적으로 포트폴리오를 보면서 프로젝트에 관한 기술 면접이었다. 첫 면접이다 보니 많이 떨렸고 20% 정도 질문 의도를 파악하지 못하여 더듬었다. 첫 면접치고는 잘 봤다고 생각한다. 결과는 탈락이었다. 교수님을 통하여 들은 피드백은 더 라쿠텐과 어울리는 사람을 뽑고 싶다고 전달받았다.

 

탈락!


2. 라쿠텐

 

  EC부서에서 공채가 열려 지원했다. 라쿠텐에 근무 중인 친구에게 추천받아 특채로 지원했다. 

 

  라쿠텐은 Codility(코딩 테스트) + 서류로 1차로 면접자를 거른다. Codility 문제 난이도는 천차만별이라 어려운 문제 걸리면 시간이 부족하고 쉬운 문제 걸리면 20분 컷이다. 마침 이때 어려운 문제 걸렸따...

 

탈락!


 

3. 라이플

 

  여러 기업설명회와 면접을 봤지만 정말 가고 싶은 회사 두 개를 꼽으라면 소프트뱅크와 라이플이라고 느꼈다.

 

  라이플은 도쿄에 거주하고 있는 사람이 아니면 잘 모르는 기업인 것 같다. 도쿄에 있는 일본 부동산 회사이며 자본금 40억 엔에 달하는 중견기업이다.

 

  면접 일정은 1차 면접, 2차 면접, 기술 면접, 선배들과의 소통, 최종 면접 (2달 소요)이다.

 

  1차 면접(그룹 디스커션)

  5~6명의 면접자에게 주제를 던져주고 자유롭게 토론하는 면접. 토론을 마치고 한 명이 의논한 내용을 정리하여 1분 동안 발표하는 프로세스. 우리 그룹이 받은 주제는 "취업" 이었다. 내가 사회자가 되고 나머지 인원도 각자 역할을 가지고 토론이 진행되었다. 다들 긴장한 나머지 토론 내용은 주제와 달린 점점 산으로 갔다. 그런데도 불구하고 사회자와 발표자를 담당하였기 때문에 합격할 수 있었다.

 

합격!

 

  2차 면접(1:1 면접)

  인사 담당자와 1:1로 하는 면접. 포트폴리오를 보며 프로젝트 서비스에 대해서 소개하고 학교생활이나 성격에 관해서 이야기하는 시간을 가졌다. 너무 편안한 분위기에서 면접을 봤고 당황스러운 질문은 하나도 없었다. 

 

합격!

 

  기술 면접(1:1 온라인 면접)

  2차 면접이 끝나고 제법 시간이 지나서 온라인으로 기술 면접을 보았다. 면접관이 클라우드 관련 엔지니어라는 사실을 주워듣고 2학년 말부터 다져온 AWS에 관한 지식을 보여주었다. 합격! 30명 정도 지원했지만, 기술 면접이 끝나고 나를 포함한 4명이 남게 되었다.

 

  

  선배들과의 소통

  근무하고 있는 선배들과 면담, 회사에 궁금한 점을 질문하는 시간을 합쳐 2시간 30분 동안 온라인 면담을 했다. 긴 채용 프로세스를 보며 "사원 한 명 한 명 제대로 뽑는 회사"라고 생각했고 면담을 마치고 왜 내(글쓴이)가 지금까지 면접에서 살아남았고 앞으로 어떻게 보완하면 최종면접에서 합격할 수 있는지 알려주는 것을 보고 정말 가고 싶은 회사 중 하나로 내 마음속에 자리 잡았다.

 

 

  최종 면접

  최종 면접은 도쿄 본사에서 진행했다. 비행기, 숙소 비용을 전액 부담해 주었다. (라이플에서 지원해준 건지 중간 컨설턴팅 업체에서 해준 건지 모르겠다.)

  오전에 비행기를 타고 도쿄로 넘어가 숙소에 짐을 풀고 식사하고 면접 준비를 조금 하니 오후 4~5시가 되었다. 밥이 코로 넘어가는지 입으로 넘어가는지 알 수 없었다. 그렇게 본사에 5시에 도착해서 기업견학을 하고 오후 6시부터 면접을 시작했다. 

  면접에는 CTO(기술 총 책임자)와 인사부장? 같은 사람이 와서 면접을 봤다. 한 명당 1시간~1시간 20분 정도의 시간을 소요하는 면접이었다. 나는 이번 면접을 위해 사업 아이템을 생각해 PPT로 사업계획서를 제작해서 갔다. 나는 기술 면접 때 클라우드 엔지니어가 되고 싶다고 어필하였고 마찬가지로 최종 면접에서도 똑같이 말했다. 하지만 여기서부터 멘탈이 나가는 몇 가지 질문을 받았다.

 

  1. 클라우드 엔지니어에 대한 확실한 목표가 나에게 보이지 않았고 면접관은 놓치지 않고 압박 면접을 진행하였다. 

  2. 내가 준비해간 사업 아이템을 보고 클라우드 엔지니어가 되고 싶은 건지 기획을 하고 싶은 건지 캐물었다.

 

기억나는 예)

  클라우드 엔지니어로서 일하고 있는 도중, 내가 구상한 사업 아이템을 개발해야 하면 하던 일(클라우드)을 그만둘 것인가? 와 같은 질문을 받으면서 내 멘탈은 부서졌다.

 

  여기서부터 면접 말리기 시작하면서 "빨리 면접장에서 도망치고 싶다."라는 생각이 가장 많이 들었다.

  면접을 이따위로 준비한 나 자신이 너무 분하고 미웠다. 모두 면접이 끝나고 시간을 보니 새벽 1시였다.

 

탈락!

 

  최종 면접에서 떨어지고 한국에 돌아와서 라이플로부터 피드백을 들을 수 있었다. 라이플 면접을 계기로 "나는 어떤 개발자가 되고 싶을까?"에 대해서 정말 깊은 고민을 하기 시작했다. 나에게 큰 자극을 준 고마운 회사다. 

 


4. 렌트락스

 

  큰 관심을 가지고 지원한 기업이 아니기 때문에 준비도 부족했고 탈락했다.

 

탈락!


 

5. 라쿠텐

 

  또 EC 클라우드 부서에서 공채가 열려서 지원했다. 다행히 코딩테스트 문제가 쉬워서 후딱 풀고 제출하고 합격했다. 하지만 소프트뱅크에 합격한 나는 면접을 보러 갈 필요가 없었다.

 

합격!


6. 소프트뱅크

 

  상반기 공채도 있었지만, 라쿠텐&라이플에 겹쳐 최후의 보루로 남겨놓았던 하반기 공채! 10월 초에 지원했던 것 같다. 

어필 포인트를 늘리기 위해 지푸라기라도 잡는 심정으로 8월에 소프트뱅크 인턴십에 지원했다. 사업을 계획하고 실제 구현하여 사람들에게 서비스를 제공하는 인턴십이었다. 수업을 다 빼고 팀원들과 사업계획과 PPT 작성에 몰두했다. 다행히 서류는 합격했고 도쿄 본사(시오도메)에 면접으로 보러 오라고 했다. 면접관은 한국에 거주하고 있으면 사업을 구현하는 것이 힘들다고 판단하였고 실제 인턴십에 참가도 못 하고 떨어졌다.

 

  주변에서 "인턴십 참가도 못하고 떨어졌는데 넣어봤자 아무 효력도 없다"라는 사람들도 있었지만 이런 경험은 분명 다른 면접자와 비교될 것이라 확신했고 면접장에 사업계획서까지 챙겨갔다.

 

  공채 서류는 자연스럽게 통과했다. 면접 하루 전날까지 교수님한테 자기소개가 부자연스럽다고 지적받았다. 덕분에 컨디션도 엉망이 되었고 확실한 어필 포인트가 부족해 걱정이었다. 하루 전날까지도 "회사에 입사하면 어떤 엔지니어로 성장하고 싶은가?"라는 질문에 정확한 답을 찾지 못하였다.

 

  면접 당일 새벽, 새벽 감수성이 터졌는지 라이플 면접 당시 클라우드 엔지니어가 되고 싶다고 말했다가 면접에서 탈탈 털리고 스스로 분했던 그 감정이 다시 떠올랐다. 이번 면접에서는 컨셉 잡고 ○○엔지니어가 되고 싶다고 이야기했다가 후회하지 말자고 각오했다. 그냥 진심을 담아 솔직하게 면접관에게 전달하자고 생각했다.

 

  다음날 서울에서 열리는 면접회에 참가했다. 30명 정도 기업설명회에 참가했다. 복장은 자유였기 때문에 그냥 깔끔한 옷 입고 갔다. 사람들의 반은 정장 반은 사복? 이었다. 

 

  기업설명회 듣고 감명 받은 것은 처음이었다. 설명도 깔끔하고 PPT도 깔끔하고 진행하고 있는 다양한 사업에 관해서 설명해주는데 이번에 면접에서 떨어지면 아까워서 눈물이 날 것 같았다.

 

  이상 자세한 면접 내용은 면접 보고 나서 다음날 작성한 생생한 스크립트를 첨부하겠다.

 

  난 면접을 끝마치고 이것보다 면접을 잘 볼 수 없겠다고 생각했다. (내 기준)

 


 

  마무리...

 

  나는 취업을 준비하는 많은 청년에 비해서 면접을 많이 본 것도 아니고 기간이 길었던 것도 아니다. 

  취업 준비에는 정답이 없는 것 같다. 다만 자신의 노력을 면접관에게 솔직하게 이야기하는 것만큼은 정답인 것 같다. 거짓과 과장이 가득한 면접을 준비한 사람을 뽑는 회사는 갈 필요 없다. 그런 회사에는 그런 사람들뿐이거든... 자신이 노력했고 그 사실을 솔직하게 면접관에게 전달했는데 떨어진다면 둘 중 하나다.

 

1. 회사와 자신의 일하는 스타일이 안 맞는다.

2. 회사에서 사람 뽑을 줄 모른다.

 

면접에 떨어진다 해도 좌절할 필요 없다. 전부 다 경험이고 공부이기에 더 좋은 기업에 들어갈 발판이 될 것이다.

 

  "요즘 일본 IT 취업? 적당히 해도 적당한 곳에 들어가겠지"라고 생각하는 사람들에게 자극을 주고 싶었기에 글재주도 없고 재미도 없는 글을 길게 적어보았다.

 

 

면접 스크립트.docx
0.03MB
사업계획서.pdf
3.20MB
포트폴리오.pdf
3.54MB

 

  모두 자신이 원하는 회사에 취업하기 바란다!

'Job > Softbank' 카테고리의 다른 글

[소프트뱅크] 내정자 친목회  (10) 2020.08.27
전문대에서 소프트뱅크까지 - 上  (0) 2020.05.14

  2019년 11월 나는 소프트뱅크에 내정 받았다.

  

  요즘 IT 일본 취업이 트렌드?로 자리 잡으면서 교육기관은 많고 누구나 쉽게 도전할 수 있게 되었다. 그러므로 요즘 일본 취업이 쉽다고 생각하는 사람이 많다. 이 글을 읽는 사람들이 오해하지 않았으면 좋겠다는 생각으로 내가 언제 일본어와 IT는 어느 정도 실력이었는지 정확하게 전달하기 위해서 내 긴 여정을 글로 써내려 가겠다.


일본 & IT와의 만남

 

  중학생 때부터 일본 만화를 보기 시작하면서 일본에 대한 관심이 있었다. 그렇게 국, 영, 수와 같은 다른 어떠한 과목보다 일본어를 열심히 했었다. 하지만 고등학생이 되니 현실은 달랐다. 일단 좋은 대학을 가야 된다는 주변의 압박과 나 또한 그런 생각을 하고 있었기에 일본어 공부를 그만두고 학업에 열중했다. 라고 말하고 싶지만, 솔직히 그냥 놀았다.

 

  시간이 흘러 수능을 보고 나니 갈 수 있는 대학은 별로 없었다. 부모님의 추천으로 계명대 일본학과에 넣어봤지만 "면접"이라는 개념이 없었던 나는 아무런 준비도 하지 않았다. 면접 중 지금도 기억에 남아있는 질의가 있었다.

 

면접관: 저희학교에 지원하신 이유가 뭡니까?
나: 서울권 대학에 갈 성적이 안됐기 때문에 지원했습니다.

 

  지금 생각해보면 너무 부끄러운 대답이다. 그래서 아직까지 내 기억 속에 자리 잡고 있는듯하다.

 

  대학교 1학년 생활은 방황했던 시기인 것 같다. 잘 적응하지 못했고 학교를 나가는 날도 거의 없었다. 그리고 2014년 4월 군대에 입대했다. 군대에서 내 인생은 변하기 시작한다.

 

  난 행정병은 아니었지만 777사령부라고 해서 뭐 컴퓨터를 주로 만지는 보직을 받았다. 군대 다녀온 사람들은 다들 공감하겠지만 시간이 정말 안 간다. 휴가 나가서 무엇을 할지 계획을 짜는 것이 그나마 시간을 잘 흘러가게 해준다. 컴퓨터로 근무를 하다가도 중간중간 쉬는 시간이 정말 많았다. 그 때 선임들이 엑셀의 기능을 활용하여 게임이나 휴가 계획표를 만드는 것을 보고 관심을 가지게 되었다. 짬이 조금씩 차면서 눈치껏 엑셀을 만지기 시작했다. 처음에는 엑셀 기본 함수만을 이용하여 휴가 계획표를 만들고 꾸미면서 재미를 붙였다. 나중에는 엑셀의 VBA(Visual Basic for Application)를 활용하여 게임을 만들었다. 말이 게임이지 후임한테 비둘기를 그림판으로 그려달라고 하여 「비둘기 키우기」라던가 간단한 RPG 게임을 만들었다. 그렇게 군대에서 만든 게임만 5개는 넘는 것 같다. 하루 주간 근무가 8시간 30분이다. 그중 6시간 이상을 자리에 가만히 앉아서 코딩만 했다. 나의 근무 시간이 아니였지만 근무를 대신 서면서까지 코딩을 했던 기억도 있다.

 

  군대 동기에게 IT와 일본어를 둘 다 할 수 있는 학교를 소개받아 전역 후 부모님과의 상담도 없이 계명대학교를 자퇴하고 전문대학에 재입학하였다. 처음엔 왜 마음대로 자퇴하였냐고 부모님의 질타를 받았지만, 나의 의지가 너무 확고했기에 나중엔 결국 받아들여 주셨다. 

 

  전문대학과 4년제대학교는 나에게 있어서 큰 차이가 있었다. 전문대학은 교양수업이 없다. 모든 과목이 전공에 관련된 수업만 진행된다. 그 점이 나는 마음에 무척 들었고 공부에 집중할 수 있었다.

 


대학교 생활

 

일본어 JLPT N2, JPT 850点

IT는 공부한 내용과 프로젝트만 소개하겠다.

 

대학교 1학년

  • HTML
  • Javascript
  • Java - 객체지향언어 개념 익히기
  • Network - 기억 하나도 안 난다

프로젝트

1. 홈페이지 만들기

2. Java swing으로 게임 만들기

3. 학교 수업 마치고 부산 <=> 대구 왕복하며 블록체인 스터디 참가

얼타기만 하다가 왔다. 수업내용을 거의 알아듣지 못했다. 노력한 나에 대한 박수를 보낸다.

 

 

대학교 2학년

  • Android - 기본적인 모바일 앱 만들기
  • PHP - 게시판 만들기
  • Laravel - 다양한 페이지 만들기, Oauth 계정 연동
    DB - MySQL, MariaDB

프로젝트

1. Laravel, PHP, DB로 게시판 만들기

2. 해커톤 나가서 IOT 프로젝트

경험상 나간 느낌? 매일 밤새우며 팀 프로젝트로 정말 열심히 했다.

 

 

대학교 3학년

  • AWS - Ec2, S3, RDS, Route53, Lambda, Amplify, Athena, Kinesis, Glue 등 정말 많은 AWS를 사용해봤다.
  • Vuejs - 프론트 쪽은 주로 Vuejs를 활용해서 만들었다.
  • Swift - IOS 모바일 앱 개발
  • Arduino - IoT 서비스 구현
  • Ruby - Laravel 말고 일본산 프레임워크를 사용해 보고 싶어서 도전했지만 Laravel에 비해 속도가 느려 포기
  • Python - 대충 만져봤다.

프로젝트

1. 졸업 프로젝트

너무 많은 고생을 했기에 딱히 정이 가는 팀 프로젝트도 아닐뿐더러 규모에 비해 면접에서 어필은 하지 않았다.

2. 지문인식 출결 프로그램

교수님이 출결 방식에 대해 고민하고 계셔서 내가 직접 추진하여 진행한 팀 프로젝트

3. 화재방지 IoT 서비스

자취방에 불이 날 뻔했던 적이 있어 원격, 실시간으로 자취방이 확인 가능한 IoT 모바일 서비스

4. 소프트뱅크 인턴십 사업 준비

취업하는데 가장 큰 힘이 된 프로젝트

 


자세한 취업 준비에 대한 내용과 자료는 下편에 계속...

'Job > Softbank' 카테고리의 다른 글

[소프트뱅크] 내정자 친목회  (10) 2020.08.27
전문대에서 소프트뱅크까지 - 下  (33) 2020.05.16

+ Recent posts