서울시 영등포구청 대학생 아르바이트 후기
DoDoBest
·2023. 8. 16. 23:04
7월 10일부터 8월 4일까지 영등포구청 의약과에서 대학생 아르바이트를 했습니다. 대학교 1학년 때부터 매 학기 서울시와 영등포구청 대학생 아르바이트를 지원했었는데, 8번 만에 막차로 하게 됐네요. ㅎㅎ
제가 했던 업무는 아래와 같습니다.
1. 당시에 파업이 예정되어 있었는데, 병원에서 참여에 따라 영업을 안 하는지 전화로 설문
2. 의무 교육 보고서 제출 제촉(확인 안내?) 전화
3. 파쇄
4. 병원에서 제출한 의무 교육 보고서 파일을 엑셀로 정리하기
업무 시간이 많지는 않았고, 남는 시간에는 공부했습니다.
무엇보다 직원분들이 매우 친절했습니다. 또한 팀장님들이 점심을 자주 사주셨습니다.
의약과 매우 추천합니다😀
특이사항
이번 아르바이트부터 우리 영등포구청에 필요한 정책을 조별로 발표하는 것이 생겼습니다. 매주 조별로 모여서 아이디어 회의와 발표 준비를 했습니다. 이 시간은 업무 시간에 포함해주셨습니다.
상위 세 팀은 구청장님 앞에서 발표할 기회가 주어지고, 상장을 받았습니다. 상위 팀들은 자료 조사와 PPT 준비를 매우 열심히 한 티가 났습니다. 추후 아르바이트에서 발표할 기회를 얻고 싶으신 분이 있다면, 이미 시행되고 있는 정책에서 내가 참여해봤는데, 어떤 점이 미흡했고, 이런 점을 개선했으면 좋겠다는 흐름으로 발표하면 점수를 많이 받을 수 있을 것 같습니다.
발표 관련 아쉬운 부분
저희 조는 공공 기관에서 진행하는 교육 프로그램과 국비 지원 프로그램의 아쉬운 점 + 실행되고 있는 정책과 영등포구 소식을 구민들이 쉽게 접할 방법에 대해 발표했습니다. 발표 시간이 5분이었는데, 두 주제를 담으려다 보니 이도 저도 아니게 된 점이 아쉽습니다. ( Tip: 발표 시간 10분 넘기셔도 상관없습니다. 상위 팀들은 모두 약 10분 정도 발표했습니다. )
발표가 끝나고 난 뒤, 부스트 캠프에서 했던 프로젝트가 생각났습니다. 저희 프로젝트는 카카오 초정밀 버스처럼 버스, 지하철의 실시간 위치를 지도에 표시해주는 기능을 생각했습니다. 하지만 공공데이터 포털 API로 받아오는 버스, 지하철의 GPS 좌표 업데이트가 실시간으로 이루어지지 않아 구현할 수 없었습니다. 발표를 이와 관련한 주제로 했으면 어땠을까 하는 아쉬움이 듭니다...😥
https://github.com/boostcampwm-2022/android10-PlzStop
영등포구청 후기를 작성하며 관련 담당자님에게 서울시 API는 왜 카카오처럼 못하는지 전화로 여쭤봤습니다. 서울시 버스 단말 기기는 20초 간격으로 GPS 정보를 날려줍니다. 카카오 초정밀 버스를 서울시에서 제공하려면, 약 10,000대가 넘는 버스의 단말 기기를 모두 바꿔야 하고, 이 버스들이 보내는 GPS 좌표를 처리하기 위해 서버도 키워야 합니다. 따라서 서울시가 사업으로써 진행해야 하는 부분이기 때문에, 단기간에 반영해주기 힘들다고 합니다.
아르바이트 마지막 주에 구청장님과의 대화 시간이 있었고, 끝날 무렵 구청장님이 전화번호를 알려주시고 건의할 내용이 있으면 카톡을 보내도 된다고 하셨습니다. 그래서 위 버스 단말 기기 관련 내용을 구청장님께 카톡으로 건의드렸습니다. 하지만 읽고 답변이 없으십니다😅 개인 전화번호라고 하셨는데, 업무용 전화번호인가 봅니다. 주말에 답변을 해주셨습니다.
카톡에 보낸 노션 링크는 https://dodobest.notion.site/dodobest/dbc3464315f44760bcab7f7ec2cc510e 입니다.
+ 2023.09.07 목요일
구청장님이 서울시에 건의해주신다는 답변을 주셨었는데, 오늘 아침에 교통 관련 부서 직원 분이 서울시와 관련 내용으로 얘기했던 내용을 알려주셨고, 건의하기 전에 몇 가지를 물어보셨습니다. 서울시도 부산, 제주도와 같은 초정밀 서비스의 존재와 필요성을 인지하고 있지만, GPS를 실시간으로 바꾸기 위한 비용이 억 단위이기 때문에, 시민 분들이 느끼는 필요성(체감되는 정도?)이 높은지, 실시간으로 바꾸지 않고 할 수 있는 다른 방법은 없는지 확인하고 있다고 알려주셨습니다.
정말 건의해주실 줄 몰랐는데, 꼭 반영되서 서울시에서도 초정밀버스 서비스가 나오면 좋겠습니다😀
의약과 의무 교육 보고서 관련 꿀팁
똑같은 양식의 엑셀 파일에 있는 자료를 한 개의 엑셀 파일로 작업하는 반복 업무입니다. 하지만, 병원 대부분에서 양식을 지키지 않습니다. 예를 들어 주민등록번호에 `-`를 적지 말아 달라고 큰 말풍선으로 적혀 있음에도 적는다던가, 의사만 A 시트, 그 외에는 B 시트에 적어야 하는데, 모두 A 시트에 적는 경우가 있었습니다.
그래서 파이썬을 이용해 엑셀 파일을 읽고, 양식을 지키지 않은 것들을 양식에 맞게 수정한 후, 엑셀 파일에 넣어주는 코드를 작성했습니다. 마지막에 급하게 만든 코드라 부족한 부분이 많습니다. 보고서 양식 관련 개인 정보 파일은 모두 삭제해서 코드를 개선할 수가 없습니다. 그래서 작성했던 코드 그대로 올립니다.
import pandas as pd
import os
import re
# List of category words
kinds = ['의료인', '비의료인', '외국인']
pattern = r'\.(.*?)\.'
sample_identify_num = '1212121234567'
medical_type = ['의사', '간호사']
# Read the Excel file
# record_file = pd.read_excel('범죄경력명단.xlsx', engine='openpyxl', header=None)
file_directory = '경력조회_파이썬 작업'
def main():
files = os.listdir(file_directory)
for file in files:
serial_num = 1_000
if os.path.isfile(os.path.join(file_directory, file)):
hospital_name = next(iter(re.findall(pattern, file)), None)
is_xlsx = file.endswith('.xlsx')
serial_num = file.split('.')[0]
if not is_xlsx:
print(f'\n[엑셀이 아닙니다]: {file}\n')
continue
if hospital_name == None:
print(f'\n[이름 형식이 맞지 않습니다.]: {file}\n')
hospital_name = file.split('.xlsx')[0]
else:
print(f'[Error] {file}')
continue
print(f'{file} 작업 시작', end='\r')
df_new_renamed = pd.read_excel(f'{file_directory}/{file}', engine='openpyxl', header=None)
df_new_renamed = df_new_renamed.iloc[:, :4]
# df_new_renamed.columns = ["_1", "_2", "_3", "_4"]
# Extract the data
data_dfs_new = extract_data_new(df_new_renamed, hospital_name, serial_num)
if data_dfs_new == False:
continue
# Print the data for each category
# for kind, df in data_dfs_new.items():
# print(f"{kind}:")
# print(df)
# print()
# write to Excel file
write_data(data_dfs_new)
def convert_identify_number_format(identify_num: str):
# - 넣기
# if len(identify_num) == 14:
# return identify_num
# return identify_num[:6] + '-' + identify_num[6:]
return identify_num.replace('-', '')
def extract_data_new(df, hospital_name: str, serial_num):
data_rows = {kind: [] for kind in kinds}
current_kind = None
in_data_section = False
try:
for idx, row in df.iterrows():
kind: str = row[0]
if '외국인' in str(kind):
kind = '외국인'
if kind in kinds:
current_kind = kind
in_data_section = False
elif kind == "일련번호":
in_data_section = True
elif in_data_section and not pd.isna(row[1]) and not pd.isna(row[3]):
# 주민번호, 일련번호 포맷 적용하기
row[2] = convert_identify_number_format(str(row[2]))
row[0] = serial_num + '-' + str(row[0])
# sample data filter
if row[2] == sample_identify_num:
continue
new_rows = list(row)
new_rows.append(hospital_name)
# 의사가 아닌 경우 확인하기
if current_kind == '의료인' and not any(type in row[3] for type in medical_type):
# print(new_rows)
data_rows['비의료인'].append(new_rows)
else:
# print(new_rows)
data_rows[current_kind].append(new_rows)
except KeyError:
print(f'\nKeyError occur\n')
return False
data_dfs = {kind: pd.DataFrame(rows, columns=["일련번호", "성명", "주민번호", "면혀종별", "비고(의료기관명)"])
for kind, rows in data_rows.items() if rows}
# Remove rows with NaN values from each DataFrame in data_dfs
# for kind, df in data_dfs.items():
# df.dropna(inplace=True)
return data_dfs
def write_data(data_dfs_new):
with pd.ExcelWriter('(수합)범죄경력명단제출양식_XXX.xlsx', engine='openpyxl', mode='a', if_sheet_exists='overlay') as writer:
for kind, df in data_dfs_new.items():
if kind in writer.sheets:
df.to_excel(writer, sheet_name=kind, index=False, header=False, startrow=writer.sheets[kind].max_row)
else:
df.to_excel(writer, sheet_name=kind, index=False)
if __name__ == '__main__':
main()
'후기' 카테고리의 다른 글
쿠팡, 토스, 카카오 모빌리티 서류 탈락 + 탈락한 이력서 복기해보기 (0) | 2024.10.08 |
---|---|
내일배움캠프 Android 3기 자세한 후기 (1) | 2024.07.14 |
지난 2달 동안 한 일 (0) | 2023.02.16 |
부스트캠프 웹·모바일 7기 멤버십 후기 (0) | 2023.01.04 |
부스트캠프 웹·모바일 7기 챌린지 후기 (0) | 2022.08.25 |