저는 경영학과랑 경제학과 복수 전공을 했습니다. 투자를 할 때 value-add라는 게 있고 core, core plus라는 게 있습니다. value add 는 갈아엎어버리는 투자고 core는 기존에 있는 거, core plus는 상대적으로 매우 안전한 투자라고 생각하면 됩니다. 아무래도 안전할수록 투자 수익률은 낮겠지요. 지금 제가 하는 일은 value-add 라고 생각합니다. high-risk, high-return 인 겁니다.
이력서 피드백이 어제 왔는데 대략 이런 내용입니다.
[자기소개] 1. 단순히 ’~~한 사람이다.’’라고만 작성하신다면 경쟁력이 없습니다. 지난날 경험을 간략하게 작성하고 이러한 경험으로 인해 ~~한 장점이 있다고 작성하신다면 채용담당자 입장에서는 왜 그러한 장점이 있는지에 대한 이유를 알 수 있기 때문에 더 명확하게 와닿을 수 있습니다. [프로젝트] 1. Jeju-inn에서 단순히 구현내용밖에 없는데, JWT를 사용한 이유(쿠키-세션 보다는 OO 한 장점으로 JWT사용) 같은 단순한 내용이라도 추가해서 조금 더 프로젝트가 풍성해 보여야 할 것 같습니다. [이력서 전반] 1. 현재도 1페이지 뿐이기 때문에 가독성이 심하게 나쁘진 않지만 핵심 단어에는 볼드체를 넣어서 강조 및 가독성을 키워주세요. [총평] 1. 프로젝트에서 기술 스택을 사용한 이유라든지, 개선점에 대한 수치화가 잘 되어있어서 조금만 수정하신다면 좋은 이력서가 완성될 것 같습니다. 좋은 이력서 작성하시느라 고생하셨습니다.
원래 제가 배운(대학에서) 내용 대로라면 카테고리 제목이나 이름 외에 볼드를 하는 일은 없습니다. 애초에 이력서가 1장이 넘어가는게 용납이 안됩니다. 그건 쓸데없는 걸 많이 넣었다는 증거니까요. 이모디콘따위 들어가지 않고 색깔을 왜넣습니까 입니다. 근데 잘된 개발자 이력서 예시들도 그렇고 제가 받은 피드백도 그렇고 일단은 개발자는 이런거구나하고 받아들입니다.
학교가 맨 아래 들어가는게 너무 이해가 안되긴하지만 기술, 실력 위주로 돌아가는 엔지니어링 업계는 다른 건가 하고 이해해보려고 하고 있습니다. 근데 제 지인 중에 공학박사가 있는데 학벌이 코리아에서는 어쩔수 없이 중요한 요소라고 합니다. 물론 그 지인은 컴공 쪽은 아닙니다만. 제가 트렌드를 너무 못 따라가는가도 싶기도 합니다. 노션으로 이력서를 작성하는 세상이라니... 불렛 포인트 크기 하나 다를 까봐 조마조마하며 포맷을 맞추던 저의 옛 취준생 시절과 너무 달라서 적응이 안됩니다. 저는 M과 Z 세대 사이에 있는데 이럴대는 어쩔수 없는 밀레니얼이 구나 하고 느낍니다.
학교를 맨 위에 박기에는 전공이 너무 달라서 맨밑에 넣었습니다.
이력서에 자기 소개를 적어도 한줄로 끝내는 비지니스 이력서에 비해서 자기소개를 최소 3문장 적으라고 해서 저는 또 사고의 틀을 깨고 아래처럼 적어보았습니다.
끝없이 발전하며 코드의 가치를 높이는 개발자입니다. 넘치는 아이디어로 끊임없이 무언가 만드는 것을 즐기며, 목표를 위해 꾸준히 정진합니다. Spring Framework를 통해 다양한 웹사이트 개발을 진행한 경험이 있고 프론트엔드 개발자, 디자이너와 협업하며 프로젝트를 성공적으로 이끌었습니다. 고객의 일상에 value-add 하는 개발자가 되고 싶습니다.
부트캠프에서 제공한 개발자 우수 이력서 양식들을 보고 놀라서 자빠져있다가 일어나서 이력서 초안을 작성했습니다. 비지니스 이력서, 포맷이 정해진 이력서를 작성하고 심지어 부업으로 그런 이력서들을 첨삭해주는 일도 했던 저에게는 기절 초풍할 노릇이었습니다. 노션으로 이력서를 작성할 수도 있다는 사실은 알고 있었는데 '안녕하세요'가 들어간 이력서라니...🤦♀️🤦♀️
우선은 부트캠프에서 제공한 이력서 양식을 참조하되 제가 아는 방식으로 조금 더 포멀하게 만들었습니다. 깃헙을 검색해서 나온 이력서들도 참조했습니다. 내용은 여전히 어떻게 채워야 할지는 모르겠습니다. 최종 프로젝트를 6주동안 진행했는데 아무래도 제가 구현하지 않은 부분도 있다 보니 어떤부분을 넣을지, 어떤부분을 강조할 지에 대해서는 피드백이 필요하다고 판단했습니다. 우선 부트캠프에서 제공하는 이력서 피드백 서비스를 신청했습니다.
원래는 보통 학력이 맨위에 올라가는데, 학력을 맨밑에 넣는 일이 생겼습니다.. 전공이 달라 슬픕니다. 첨부터 공대갈걸..........ㅠㅠ
/*
* Copyright 2008-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.domain;
import java.util.Optional;
import org.springframework.util.Assert;
/**
* Abstract interface for pagination information.
*
* @author Oliver Gierke
* @author Mark Paluch
*/
public interface Pageable {
/**
* Returns a {@link Pageable} instance representing no pagination setup.
*
* @return
*/
static Pageable unpaged() {
return Unpaged.INSTANCE;
}
/**
* Creates a new {@link Pageable} for the first page (page number {@code 0}) given {@code pageSize} .
*
* @param pageSize the size of the page to be returned, must be greater than 0.
* @return a new {@link Pageable}.
* @since 2.5
*/
static Pageable ofSize(int pageSize) {
return PageRequest.of(0, pageSize);
}
/**
* Returns whether the current {@link Pageable} contains pagination information.
*
* @return
*/
default boolean isPaged() {
return true;
}
/**
* Returns whether the current {@link Pageable} does not contain pagination information.
*
* @return
*/
default boolean isUnpaged() {
return !isPaged();
}
/**
* Returns the page to be returned.
*
* @return the page to be returned or throws {@link UnsupportedOperationException} if the object is
* {@link #isUnpaged()}.
* @throws UnsupportedOperationException if the object is {@link #isUnpaged()}.
*/
int getPageNumber();
/**
* Returns the number of items to be returned.
*
* @return the number of items of that page or throws {@link UnsupportedOperationException} if the object is
* {@link #isUnpaged()}.
* @throws UnsupportedOperationException if the object is {@link #isUnpaged()}.
*/
int getPageSize();
/**
* Returns the offset to be taken according to the underlying page and page size.
*
* @return the offset to be taken or throws {@link UnsupportedOperationException} if the object is
* {@link #isUnpaged()}.
* @throws UnsupportedOperationException if the object is {@link #isUnpaged()}.
*/
long getOffset();
/**
* Returns the sorting parameters.
*
* @return
*/
Sort getSort();
/**
* Returns the current {@link Sort} or the given one if the current one is unsorted.
*
* @param sort must not be {@literal null}.
* @return
*/
default Sort getSortOr(Sort sort) {
Assert.notNull(sort, "Fallback Sort must not be null");
return getSort().isSorted() ? getSort() : sort;
}
/**
* Returns the {@link Pageable} requesting the next {@link Page}.
*
* @return
*/
Pageable next();
/**
* Returns the previous {@link Pageable} or the first {@link Pageable} if the current one already is the first one.
*
* @return
*/
Pageable previousOrFirst();
/**
* Returns the {@link Pageable} requesting the first page.
*
* @return
*/
Pageable first();
/**
* Creates a new {@link Pageable} with {@code pageNumber} applied.
*
* @param pageNumber
* @return a new {@link PageRequest} or throws {@link UnsupportedOperationException} if the object is
* {@link #isUnpaged()} and the {@code pageNumber} is not zero.
* @since 2.5
* @throws UnsupportedOperationException if the object is {@link #isUnpaged()}.
*/
Pageable withPage(int pageNumber);
/**
* Returns whether there's a previous {@link Pageable} we can access from the current one. Will return
* {@literal false} in case the current {@link Pageable} already refers to the first page.
*
* @return
*/
boolean hasPrevious();
/**
* Returns an {@link Optional} so that it can easily be mapped on.
*
* @return
*/
default Optional<Pageable> toOptional() {
return isUnpaged() ? Optional.empty() : Optional.of(this);
}
}
나름 이력서 코칭하는 알바도 했었지만! 개발자의 이력서는 어떻게 써야하는지 알지 못했던 저에게 유용한 세선을 오전내내 듣고 이력서를 작성하는 시간을 가졌습니다. 퇴사하고 많은일을 했었지만 개발관련된 것들은 부트캠프를 제외하면 없기 때문에 공백을 설명하는 것이 걱정일 거 같긴 합니다.
멘토님의 모의 면접
갑자기 멘토님이 면접질문을 하시겠다고 해서 당황했지만 질문하신 내역을 정리해 보았습니다.
ORM 이란?
JPA란?
QueryDSL이란? (ORM이랑 묶어서 )
MyBatis?
elastic search란? (개념 알기)
Index란?
gradle 이란?
Hibernate는 뭐야?
JPA는 뭐지
MySQL 왜 도입했는지?
인증, 인가, 쿠키, 세션, 토큰
Oauth 대충이해하기
SSE vs Websocket
CDN, Nginx flow 알기
Spring 구조, 작동 원리
답변은 추후 작성하기로 하겠습니다.
기타 멘토링 사항
기술은 구구절절 나열하지 않기.
내가 어떤 문제 해결을 위해서 어떤 기술을 썼습니다 라고 하면 됩니다.
여유로운 사람을 찾게 됩니다. 과시적인 사람은 알맹이가 오히려 없습니다.
구구절절은 지양하기.
이력서 쓰기
개발자 이력서는 처음이라 어떤 포맷으로 해야할지도 고민이 됩니다. 최종 프로젝트가 커서 할 말이 많아 다행입니다. 내일까지 이력서 제출하고 피드백을 받는 일정입니다. 취업까지 화이팅!
CRUD를 갓 배운 상태에서 다양한 기능들을 접하게 되어 처음에는 압도되서 부담이 되었지만 step-by-step으로 기술 하나하나 적용했고 발생하는 에러들을 해결하다보니 어느새 멋진 프로젝트가 완성되어 모두 앞에서 선보일 수 있게 되었습니다. 실력적으로도 경험적으로도 크게 성장했습니다. 좋은 팀원들을 만나서 운이 좋았다고 생각합니다. 끝까지 노력한 저와 팀원들 모두에게 감사합니다.