내가 알바를 많이 했어서 그런지 알바 월급,주급 관련하여

작은 프로젝트를 하나 만들려고 고민을 했다.

처음엔 퇴직금 계산기,,? 쪽으로 만들려고 하다

퇴직금은 주기적으로 하는게 아니라 뭔가 한방에 빡! 하는 느낌이어서

주휴수당은 매 주마다 확인해보니까,, 어떨까 하다가 만들게 되었다,,

(내가 일했던 대기업 알바들은 주로 주간 스케쥴이었음,, 시간이 달라 매번 계산해보아야했다..)


1. 주휴수당 공부하기

사이트를 찾아보다 이곳이 제일 괜찮은거 같아 검색해보게 되었다.

주휴수당 지급 조건 알아보기 (feat.주휴수당 계산기) | 시프티 (shiftee.io)

 

주휴수당 지급 조건 알아보기 (feat.주휴수당 계산기) | 시프티

주휴수당의 개념과 함께 주휴수당 지급 기준과 계산 방법에 대해 알아보겠습니다.

shiftee.io

 

뭐 대충 보아하니 조건이

1. 일주일에 15시간 이상 근무를 해야한다.

2. 규칙적으로 근무하는 아르바이트의 경우 1일 소정근로 시간 X 최저시급

3. 불규칙할 경우 한주 평균 근로시간 X 4 / 20일(주에 5일근무로 치는듯) X 최저시급

 

 여기서 평균 근로 시간은 총 한달 근무 일수 / 4로 계산한다.

이게 큰 틀인거 같다..

최대한 사용자 입장에서 편하게 만드려면 입력하는 칸을 최소화 해야겠다,,는 생각이 들었다.

일단 첫화면에

15시간 미만이면 받을수없다는 부분을 알려주고

1. 하루 근무일수가 일정한지

2. 하루 근무일수가 일정하지 않은지

로 분기를 두고 화면을 두개로 쪼개 입력후 계산할수있게 만들수 있게 화면을 구성해야겠다.

총 화면은 3개로 구성하겠다.


 

2. 안드로이드 스튜디오 액티비티 및 레이아웃 구성하기

 

이름은 WAcalculator 로 했다.. 찾아보니

라더라

 

깔끔하게 3개로만 만들겠다,, 복잡한건 머리가 따라오지 않는다

 

테스트,,

 

잘 돌아가는 모습이다,, 이제 레이아웃 먼저 배치해보겠다.

아 좀 팁이라면 팁인데,,

 

일일이 치기 귀찮은 코드들 onenote에 정리해 두면 진짜 편하다,, 그냥 복붙만 하면댐

메인페이지

대충 배치만 했습니다,,

1번 하루 일하는게 정해져있을때
이건 불규칙할때,,입니다

 

일단 여기까지 개발하고 기능은 다음에 추가하는걸로 하겠습니다.!

전에 만들었던 프로젝트를 테스트 해보겠습니다.

 

우측 상단에 Device Manager를 눌러줍니다.

 

Create deivce를 선택후

이곳에서 원하는 디바이스를 선택해주면 됩니다..

저는 pixel XL로 하겠습니다

 

여기서 안드로이드 버전을 선택할수있는데 저는 11버전으로 선택하겠습니다.

어플을 만들면서 어디 버전까지 호환되게 만들것인지도 중요하게 고려해보아야할 요소입니다,,

 

finish를 누르고 완료해줍시다.

 

다음과 같이 디바이스 매니저에 설치했던것이 나오게됩니다 Actions 에 실행버튼을 눌러줍시다.

(오래걸려요,, 컴기종에따라 다름..)

 

다음과 같은 화면이 나오게됩니다,,

 

저희가 쓰는 스마트폰과 똑같이 조작이 가능하며 

pc에서 가상의 스마트폰을 돌리고 있다고 생각하시면 편합니다.

아직 레이아웃에 아무것도 넣지 않아 표시가 안되지만 잘 구동된거같습니다.

설치한 어플은 가상 스마트폰 홈화면에서 확인가능합니다.

my App.. 보이시죠 이모티콘 옆에,,

 

사실 초기 설정에서 empty activity가 아닌 다른것으로 설정하면 더 편하게 초기 구성이 가능하지만,,

짚고 넘어가는게 더 편하다고 생각해서 빈 액티비티로 만들게되었습니다,,,

저도 프로젝트 생성하면서 엄청 검색했었던 기억이,,

전에 만들어놓은 액티비티 파일입니다. 레이아웃과 연결하기 위해선 입력해주어야할것들이 있습니다

 

 

public class Test 뒤에 extends AppcomaptActivity 라고 입력해주게 되면

자동적으로 임포트하게 됩니다

자동완성되니 철자 걱정 안해도 괜찮습니다.

extends AppCompatActivity

 

그리고 메인 클래스 아래 오버라이드를 이용해 onCreate 함수를 만들어줍니다

public class Test extends AppCompatActivity {
    
    //여기부터
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
    //여기까지
    
}

 

setContentView를 이용하여 레이아웃과 연결해줍니다

public class Test extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //여기부터
        setContentView(R.layout.layout);
        //여기까지
    }


}

여기서 setContentView 뒤에오는  R.layout.(연결할 레이아웃 명) ->

괄호안에는 xml파일명 입니다.

지금은 파일명이 layout이라 R.layout.layout 인거고 원하시는 레이아웃과

연결할때는 알맞은 파일명을 입력하시면 됩니다.

추가적으로 manifest 파일을 수정해야합니다.

옆 디렉토리에 app - manifests - androidManifest 로 이동해줍시다.

 

이런식의 파일이 있는데 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApplication"
        tools:targetApi="31" /> //이부분을 수정해야합니다
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApplication"
        tools:targetApi="31" > 
    </application> //이렇게
</manifest>

 

 

그리고 <application> 태그 사이에 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApplication"
        tools:targetApi="31" >
        //여기부터
    <activity android:name=".Test"
        android:exported="true">
        <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
        //여기까지
</application>
</manifest>

삽입해주면 됩니다,,

태그 사이에 삽입되어있는건 activity를 명시하고 첫 시작될 화면이 무엇인지 알려주는 코드입니다.

<activity> 태그는 실행될 액티비티는 전부 명시해야합니다 

여기까지입니다,,

File - New - New Project 순으로 눌러서 이동합니다.

 

여기서 원하는 UI에 맞게 선택하고 Next를 눌러주면 됩니다. 저는 No Activity 로 선택하겠습니다.

 

언어는 Java로 선택하겠습니다.. kotlin 보다는 Java 가 구글에서 정보를 찾기에 더 편합니다..

Finish를 누르게 되면 프로젝트가 생성됩니다. 잠시 시간이 걸리니 조금만 기다려주세요..

 

다음 화면과 같이 나오게 되면 프로젝트 생성 성공입니다.

 

+ Recent posts