Frudy
6k
2019-03-29 09:51:14 작성 2019-03-29 10:07:18 수정됨
6
1083

이렇게 해도 취직시 어필이 될까요?


웹개발자 과정 국비 2주차듣는 학생입니다. (자바 배운지 1년된 25살입니다)

저는 정보처리같은 자격증이 없어서, 개발실력을 어필해야하는 상황입니다.


남들 다 짜는 CRUD게시판(Spring, jsp실력 어필), 채팅(Java실력 어필)

이거 두개로 포트폴리오 짜기에는,


평소 여기 글을 읽어봐도

1. 팀플로 같이만든 겉에 예뻐보이는 UI에는 관심없고,

2. 직접 만든 코드가 제일 궁금하다 라고 하셨었습니다.


일단 기본적으로, 그냥 게시판이 아니라, 아예 카페를 짜고있고, (카페안에 게시판이 있죠)

채팅은 제가 갖고있는 쓰레드 프로그래밍에 대한 지식을 어필할 계획입니다만,


이것과 별개로, 제가 아이디어를 낸게 있는데,

"남들은 안하는 행동" 이기 때문에 먼저 여기에 의견을 여쭙고싶습니다.


1. myutil패키지 

2. Person 클래스 디자인 (면접에서 저한테 10분줄태니 Person클래스 디자인해봐라 하면 좋겠습니다)


이 두가지를 코드 캡쳐해서 올려볼까 싶습니다.


1은, 디버깅목적으로 또는 저혼자 따로 갠플할 때 자주 쓰던 클래스를 모아놨었던게 있습니다.

ThreadUtils.java (셀프 테스트할 때 쓰려고 만든 메소드가 많음)

StringDivide.java (문자열중 일부를 잘라내는 메소드가 많음)


그중 메소드 3개만 예시로 올려본다면


public static void printAllThread(String threadGroupName)

현 프로세스에 실행중인 쓰레드중에서 매개 그룹꺼만 출력

(오버로딩 여러개 되어있음)


public static void running(double limitSecond)

Thread.sleep()는 지정한 시간만큼 Thread가 TIMED_WAITING상태가 되듯이,

ThreadUtils.running()는 지정한 시간만큼 Thread가 실행상태가 됨을 보장하기에, 사용시 주의가필요해요.

(의미없이 반복문만 계~~속 돕니다)


public static double getRunningTime(Runnable runtimeRunnable)

해당 작업을 처리하는데 걸린 시간을 return하는 메소드입니다.

성능체크할 때 주로 씁니다.


-- 디버깅할때 위주로 쓰기에  거의다 static으로 선언되있습니다.


ㅡㅡㅡ


클래스디자인은, 되게 많은 개념이 들어갑니다.

부족하지만.. 제가 어떤생각을 하면서 평소에 코딩을 하는지를

여과없이 보여줄수있다고 생각합니다.



실제로 10분줄태니 짜보라고 시킨다면,

Person클래스를 인스턴스화 하면 안되니,

Person을 인터페이스로 만들고 Man과 Woman을 클래스로 선언하고 일단 시작한다음에,


간단하게 Man.java(클래스), Person.java(인터페이스) 2개만 올려보겠습니다.


package person;

import person.body.Arms;
import person.body.Body;
import person.personality.Personality;

public class Man implements Person
{
	private Body myBody; //신체 (public interface Body extends Arms, Legs)
	private Personality personality; //성격 (interface Personality)
	
	public boolean fight(Person opponent) //상대
	{
		boolean isWin = false;
		
		try
		{
			Body opponentBody = opponent.getBody(); 
			Arms oponentArms = opponent.getArms(); // public interface Arms
			
			Arms myArms = myBody.getArms();
			
			int myArmsPower = myArms.getPower();
			int opponentPower = oponentArms.getPower();
			
		}catch(NullPointerException e)
		{
			//상대방의 신체(Body)중 일부에 장애가 있는 경우
		
		}catch(DeadException e) // public class DeadException extends RuntimeException
		{
			//싸우던와중 상대방이 사망한 경우
		}
		
		return isWin;
	}

	@Override
	public Body getBody() 
	{
		return myBody;
	}

	@Override
	public Arms getArms() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public int getPower() {
		// TODO Auto-generated method stub
		return 0;
	}
}


package person;

import person.body.Body;

public interface Person extends Body
{
	public Body getBody();
}


패키지 경로는 이렇게 되어있습니다.

포트폴리오에 이런걸 캡쳐해서 올려도 어필이 될까요?


다만, 지금 면접본다면 저렇게 제출하겠으나,

지금 혼자 공부하고있는 상황이라면...


public Body getBody(); 가 아니라

protected Body getBody();로 해보고 싶습니다.


public, private는 잘 활용중이지만, protected는 문법만 알고 활용법을 몰랐는대.

지금 느끼는 "감"은 protected를 해야할거같은 생각이 문득 듭니다.

0
  • 답변 6

  • 드코
    3k
    2019-03-29 10:01:58

    엄청 똑똑하시다... 어디든 가면 좋아할거같음 왼만한 경력자들보다 뛰어나시네여

  • 빵상
    2019-03-29 10:09:00

    좋내요!


  • 초급개발자(오)
    511
    2019-03-29 10:22:14 작성 2019-03-29 10:26:19 수정됨

    저도 일을 시작한지 안되서 도움이 되실지는 모르겠지만...

    일단 포트폴리오를 어필 하시는 부분은 나쁘지않다고 생각합니다.

    하지만 어느회사에 취직을 하실지는 정해 놓으신건가요?

    예를 들어 si ,sm, 스타트업,대기업,프리랜서 등등


    각 회사에서 원하는 것을 어필하는게 가장 좋다고 생각합니다.

    실력이 좋은 것도 어필의 대상이기도하지만, 회사측의 요구를 얼마나 잘 받아드리는가도

    어필의 대상이기도 하거든요...

    물론 무조건 받아들이 수는 없겠지만 얼마나 타협점을 잘찾는가도 중요하다고 생각해요...


    첫 취직은 회사측의 요구에 맞춰서 진행하시고, 실력에 대한 어필은 프로젝트와 커리어를 쌓으신 후에 하느것이  좋지않을까 조심스레 생각해봅니다. 

  • 도각도각
    3k
    2019-03-29 10:41:46

    요즘 신입 사원 이력서 받아서 면접 진행하고 있는데..


    개발자에게 가장 큰 무기는 소스코드입니다.


    단순한 CRUD 기능만이 있는 기본적인 프로젝트도 괜찮습니다.


    기능이 중요한게 아니라 어떻게 구현했느냐가 중요하죠.

  • 타키투스
    882
    2019-03-29 10:51:39

    여기에 테스트 코드가 있으면 딱이네요.

  • 도각도각
    3k
    2019-03-29 11:14:59

    웹개발자는 결국엔 게시판 구현이 일입니다.


    좀 더 복잡한 게시판과 좀 덜 복잡한 게시판이 있을뿐이죠.

  • 로그인을 하시면 답변을 등록할 수 있습니다.