'컴퓨터' 카테고리의 글 목록 :: 테크니션
반응형


개발자 취업 시장에서 어떤 공고에 지원해야 하고, 어떤 공고를 피해야 하는지는 매우 중요합니다. 아무 공고나 지원했다가는 시간과 정신을 낭비할 뿐만 아니라, 경력에도 악영향을 미칠 수 있습니다. 특히, 오래된 레거시 시스템을 운영하는 팀과 신사업 TF(태스크 포스)의 차이를 이해하면, 더 전략적인 구직 활동이 가능합니다.

이 글에서는 지원하면 안 되는 공고와 지원하면 좋은 공고의 특징을 항목별로 분석하고, 신중한 선택을 할 수 있도록 안내하겠습니다.

1. 절대 지원하면 안 되는 공고의 특징

아래와 같은 공고는 지원을 피하는 것이 좋습니다. 괜히 지원했다가 면접에서 멘탈만 털리고, 시간 낭비만 하게 될 가능성이 높습니다.

1-1. 오래된 레거시 시스템을 운영하는 팀

예제:
• [네이버 카페 안드로이드 개발자]
• [카카오 메신저 서버 개발자]

이런 포지션은 이미 수년간 운영된 서비스로, 잘 정착된 개발팀이 있습니다. 뽑아도 그만, 안 뽑아도 그만인 자리이며, 실질적으로는 채용 의지가 크지 않을 수 있습니다.

⚠️ 피해야 하는 이유:
• 팀이 이미 안정적으로 구성되어 있어, 외부 인력을 적극적으로 채용하지 않음
• 해당 서비스의 기술 스택이 오래되어, 경력 성장에 도움되지 않을 가능성
• 면접 허들이 지나치게 높아, 합격 가능성이 낮음
• “이런 사람 하나 걸려라” 식의 채용 공고일 가능성이 있음

이런 공고는 기업 입장에서도 큰 필요성이 없기 때문에, 지원자의 입장에서 보면 시간 낭비가 될 가능성이 큽니다.

1-2. 너무 유명한 서비스, 유지보수 위주의 포지션

예제:
• [유튜브 백엔드 엔지니어]
• [네이버 검색 엔진 개발자]

이런 포지션도 지원하기 매우 어려운 자리입니다. 기업 입장에서 지원자를 가려 뽑을 수 있기 때문에, 아주 높은 수준의 실력을 갖춘 지원자만 합격할 수 있습니다.

⚠️ 피해야 하는 이유:
• 기술적으로 도전적인 부분이 거의 없고, 단순 유지보수 업무가 많을 가능성
• 개발보다는 운영에 가까운 일을 할 확률이 높음
• 신규 개발이 거의 없고, 기존 코드를 이해하고 유지보수하는 것이 주 업무

이런 포지션은 경력 초기에는 도움이 될 수도 있지만, 장기적으로는 기술적 성장이 제한될 가능성이 큽니다.

2. 지원하면 좋은 공고의 특징

반면, 신사업 TF(태스크 포스)팀에서 채용하는 포지션은 적극적으로 지원하는 것이 좋습니다.

2-1. 신사업 TF (태스크 포스) 포지션

예제:
• [네이버 신사업TF(중고차 매매) 백엔드 개발자]
• [카카오 신사업TF(동남아 이커머스) 안드로이드 개발자]

신사업 TF는 새로운 비즈니스를 빠르게 구축하고 런칭하는 팀으로, 즉시 전력감이 필요한 경우가 많습니다.

✅ 지원하면 좋은 이유:
• 빠르게 사람을 뽑아야 하기 때문에, 상대적으로 낮은 허들
• 신사업이다 보니 새로운 기술을 도입할 가능성이 큼
• 기존에 비슷한 경험만 있어도 채용될 확률이 높음
• 비즈니스가 성공하면 핵심 인력으로 자리 잡을 가능성

신사업 TF는 회사가 본격적으로 투자하는 영역이므로, 인력 보강이 필수적입니다. 따라서, 적절한 기술 스택과 경험이 있으면 비교적 쉽게 채용될 가능성이 높습니다.

2-2. 성장 가능성이 높은 스타트업

예제:
• [빠르게 성장 중인 AI 스타트업의 백엔드 개발자]
• [핀테크 스타트업의 프론트엔드 엔지니어]

스타트업도 성장 가능성이 높은 곳이라면 좋은 선택이 될 수 있습니다.

✅ 지원하면 좋은 이유:
• 기술적으로 도전적인 프로젝트에 참여할 가능성이 큼
• 빠르게 성장하는 환경에서 다양한 경험을 쌓을 수 있음
• 책임감 있는 역할을 맡을 기회가 많음
• 성공하면 초기 멤버로 인정받아 큰 보상을 받을 가능성

물론, 스타트업은 리스크가 크지만, 회사가 잘 성장할 경우 경력적으로 매우 큰 도움이 될 수 있습니다.

3. 전략적으로 구직 활동을 하는 방법

3-1. 무조건 공고를 보고 지원하지 말 것

공고만 보고 무작정 지원하는 것은 위험합니다. 지원 전에 회사의 사업 방향과 팀의 필요성을 분석해야 합니다.

✅ 분석해야 할 사항:
• 이 공고가 나온 이유가 무엇인가?
• 현재 사업이 성장하고 있는가?
• 어떤 기술 스택을 사용하는가?
• 내가 가진 경험과 얼마나 맞는가?

이런 부분을 분석한 후, 성장 가능성이 높은 포지션에 집중적으로 지원해야 합니다.

3-2. 신사업 TF가 아니면 이직 가치가 있는지 고민할 것

신사업 TF가 아니라면, 단순한 운영 업무만 하게 될 가능성이 높습니다. 특히, 대기업에서 유지보수 업무를 담당하게 된다면 경력 성장에 도움이 되지 않을 수도 있습니다.

✅ 고려할 점:
• 새로운 프로젝트인지, 아니면 기존 서비스 유지보수인지?
• 기술적으로 성장할 기회가 있는지?
• 팀이 얼마나 적극적으로 사람을 뽑고 있는지?

만약 신사업이 아니라 단순 운영 업무라면, 장기적으로 커리어에 좋지 않은 영향을 줄 수 있으므로 신중하게 결정해야 합니다.

3-3. 면접 후 팀 분위기와 업무 스타일을 분석할 것

면접을 보게 된다면, 단순히 질문에 답하는 것이 아니라 팀의 분위기와 업무 스타일을 분석하는 것이 중요합니다.

✅ 체크할 사항:
• 팀의 기술적인 방향성이 나와 맞는가?
• 새로운 기술 도입이 활발한가, 아니면 기존 코드 유지보수만 하는가?
• 회사가 이 포지션을 얼마나 중요하게 생각하는가?

이런 요소를 확인하고, 단순히 유명한 회사라고 무조건 지원하지 말고, 내가 성장할 수 있는 환경을 선택하는 것이 중요합니다.

4. 결론: 전략적으로 지원하자

지원하면 안 되는 공고와 지원하면 좋은 공고를 잘 구분하는 것이 중요합니다.

❌ 지원하면 안 되는 공고:
• 오래된 레거시 시스템 유지보수
• 유명한 서비스의 운영 중심 포지션
• 채용 의지가 낮은 공고

✅ 지원하면 좋은 공고:
• 신사업 TF 팀에서 빠르게 인력을 구하는 공고
• 성장 가능성이 높은 스타트업
• 도전적인 프로젝트를 진행하는 팀

무작정 공고를 보고 지원하는 것이 아니라, 나의 성장과 커리어에 도움이 되는 방향으로 전략적인 선택을 하는 것이 중요합니다.

이제 구직 활동을 할 때, 무조건 회사 이름만 보고 지원하지 말고 신중하게 분석하고 전략적으로 지원하세요!

반응형
반응형

요즘은 퍼포먼스가 중요한 네이티브 앱보다는 하나의 개발로 여러 OS를 커버하는 웹앱 개발이 많이 이루어지고 있다

두 OS의 방식을 다 커버하다 보니 어떤 기능은 하나의 OS에서 안되는 경우가 있다

iOS 에서는 앱에서 다른 링크로 이동시 새창을 못띄운다

하지만 안드로이드는 가능하다

이 충돌을 해결하려면 iOS에서 새 창을 띄우는게 아니라 링크 이동으로 바꿔줘야 한다

<a href="javascript:common.openBrowser('https://www.OOOO.co.kr');" class="txc_blue">
    OOOOO  OO
</a>

--->

<a href=" https://www.OOOO.co.kr' " class="btn btn-blue btn-lg radius">
    <span class="text"> OOOOO  OO </span>
</a>

버튼의 구현 방식을 변경하는 것은, 기존에 JavaScript 함수를 호출하여 새 창에서 URL을 여는 방식에서, 직접적으로 URL로 이동하도록 변경하는 것을 의미합니다.

이 변경을 통해 사용자가  버튼을 클릭하면, JavaScript 함수를 호출하는 대신 직접 URL로 리다이렉트되어 페이지가 이동하게 됩니다. 이 방식은 사용자가 팝업 차단기를 사용하고 있지 않거나, 브라우저에서 자동으로 팝업을 차단하는 기능이 활성화되어 있지 않은 경우에 더욱 효과적일 수 있습니다.

이와 같이 변경하면, 사용자 경험을 단순화하고, 링크에 대한 직접적인 접근을 제공하게 됩니다. 이를 통해 사용자의 브라우저 환경에 따라 발생할 수 있는 문제를 최소화할 수 있습니다.

 
 
반응형
반응형

웹 서비스 배포를 위한 WAR 파일을 수정하려면 다시 개발환경으로 넘겨야 한다

하지만 이 파일은 컴파일 된 파일이어서 이클립스로 Import 하려면 몇가지 프로세스가 필요하다

1. Eclipse IDE for Enterprise Java Developers 다운로드

  1. Eclipse 다운로드 페이지로 이동합니다.
  2. "Eclipse IDE for Enterprise Java Developers"를 다운로드합니다.
  3. 다운로드한 파일을 실행하여 Eclipse를 설치합니다.
  4. 설치가 완료되면 Eclipse를 실행합니다.
  1. Eclipse IDE의 다른 버전을 설치해보는 것이 좋습니다. Eclipse IDE for Enterprise Java Developers 버전을 사용하면 웹 개발 도구가 포함되어 있습니다.

2. 자바 개발 도구 (JDK) 설치 

  1. Oracle JDK 다운로드 페이지에서 최신 버전의 JDK를 다운로드합니다.
  2. 다운로드한 파일을 실행하여 JDK를 설치합니다.
  3. 설치가 완료되면 환경 변수에 JAVA_HOME을 추가합니다:
    • Windows: 시스템 속성 -> 고급 시스템 설정 -> 환경 변수 -> 새로 만들기
      • 변수 이름: JAVA_HOME
      • 변수 값: `C:\Program Files\Java\jdk

3. Web Tools Platform (WTP) 설치

 

  • 이클립스를 실행합니다.
  • "Help" 메뉴를 클릭하고 "Eclipse Marketplace"를 선택합니다.
  • "Eclipse Marketplace" 창이 열리면, 상단의 "Find" 입력란에 Web Tools Platform을 입력하고 "Go" 버튼을 클릭합니다.
  • "Web Tools Platform (WTP)"을 찾아 "Install" 버튼을 클릭합니다.
  • 설치 마법사의 지시에 따라 설치를 완료합니다. 설치 도중 필요한 플러그인도 함께 설치합니다.
  • 설치가 완료되면 이클립스를 재시작합니다.

4. Dynamic Web Project 생성

  1. Eclipse를 실행하고 워크스페이스를 선택합니다.
  2. "File" -> "New" -> "Other..."를 선택합니다.
  3. "Select a wizard" 창이 열리면, "Web" 폴더를 확장하고 "Dynamic Web Project"를 선택한 후 "Next" 버튼을 클릭합니다.
  4. 프로젝트 이름을 입력하고, "Target runtime"에서 "New Runtime..."을 선택하여 적절한 서버 런타임 (예: Apache Tomcat)을 추가합니다.
  5. "Finish"를 클릭하여 프로젝트를 생성합니다.

5. WAR 파일을 이클립스에 배포

  1. 이클립스에서 생성한 웹 프로젝트를 선택합니다.
  2. "File" -> "Import"를 선택합니다.
  3. "Web" -> "WAR file"을 선택하고 "Next"를 클릭합니다.
  4. "WAR file to import"에서 로컬에 있는 WAR 파일을 선택합니다.
  5. "Web project"에서 기존 웹 프로젝트를 선택하거나 새로 생성된 프로젝트를 선택합니다.
  6. "Finish"를 클릭하여 WAR 파일을 프로젝트에 배포합니다.

6. 서버 설정 및 실행

  1. "Servers" 뷰에서 "New" -> "Server"를 선택합니다.
  2. 사용할 서버 (예: Apache Tomcat)를 선택하고 "Next"를 클릭합니다.
  3. "Add and Remove..." 버튼을 클릭하여 프로젝트를 서버에 추가합니다.
  4. "Finish"를 클릭합니다.
  5. 서버를 마우스 오른쪽 버튼으로 클릭하고 "Start"를 선택하여 서버를 실행합니다.

 

이렇게 하면 실행은 될 수 있지만 WAR 파일의 자바(클래스) 파일의 수정이 안된다

class 파일을 확보하는 방법을 알아보자

단계 1: JD-GUI 설치

  1. JD-GUI를 다운로드하여 설치합니다.

단계 2: JAR 파일 디컴파일

  1. JD-GUI를 열고 WAR 파일을 엽니다. (WAR 파일은 zip 파일 형식이므로, JD-GUI로 열 수 있습니다.)
  2. WEB-INF/classes 디렉토리 내의 클래스 파일을 선택하여 디컴파일합니다.
  3. File -> Save All Sources를 선택하여 디컴파일된 소스 코드를 저장합니다.

단계 3: 디컴파일된 소스 코드를 이클립스 프로젝트에 추가

  1. 이클립스를 열고 새 프로젝트를 생성합니다.
  2. 디컴파일된 소스 코드를 프로젝트의 src 디렉토리에 복사합니다.
  3. 프로젝트를 빌드하고, 필요한 수정 작업을 진행합니다.

 

 

 

 

반응형
반응형

결제모듈 api 통신 오류가 나서 확인 해보니 이런 메세지가 있다

크롬이 80 버전부터 samesite 설정이 기본 none에서 lax로 변경되면서 결제 모듈 등에서 문제가 발생하며

이럴 때는 samesite 설정을 none으로 바꾸면된다

쿠키가 Lax여서 문제니 None로 바꾸라고

구글링해보니 자바, 자바스크립트 외 여러 방법으로 쿠키를 변경하는 법이 나온다

운영하는 프로그램이 자바스크립트와 자바로 만들어져있지만 이걸 apache tomcat을 통해 구동하면

자바, 자바스크립트가 아니라 apache tomcat 에서 변경해야 변경이 된다

apache-tomcat-x.y.z\conf\web.xml

<session-config>
    <session-timeout>30</session-timeout>
    <cookie-config>
            <http-only>true</http-only>
            <secure>true</secure>
    </cookie-config>
</session-config>

apache-tomcat-x.y.z\conf\server.xml

<Context>
     <CookieProcessor sameSiteCookies="none" />
</Context>

 

 

 

 

 

반응형
반응형

리눅스 서버를 운영하다 보면 서버에 용량이 모자라는 경우가 많이 생긴다

이 경우 파일 용량이 큰 것 먼저 삭제하면 여유공간이 생긴다

특정 용량 이상의 파일을 검색하는 명령어를 적어놓겠다

find / -type f -size +100M

반응형
반응형

JAVA , MAVEN 설치

설치경로 확보

윈도우 + R ---> sysdm.cpl 입력

 

아래와 같이 환경변수 설정

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★

CMD는 관리자모드로

이렇게 출력되면 톰캣 설치 후 WAR 파일을 읽을 준비가 된다

반응형
반응형

불가피한 이유로 서버를 재기동 해야 하는 경우가 있다

이후에 curl, dig , nslookup 등 통신이 안되는 경우가 있는데

이럴 경우 DNS 서버 설정을 한번 봐야한다

1. resolv.conf 파일 편집 (전통적인 방법):

/etc/resolv.conf 파일은 리눅스 시스템에서 DNS 설정을 관리하는 데 사용됩니다. 다음은 이 파일을 편집하는 예시입니다.

sudo nano /etc/resolv.conf

파일을 열면 다음과 같은 내용이 있을 것입니다

nameserver 8.8.8.8
nameserver 8.8.4.4

이때 nameserver 뒤에 원하는 DNS 서버의 IP 주소를 추가하거나 변경합니다.

 

A클래스가 다를 경우 통신이 안되는 경우가 생깁니다

 

수정이 완료되면 저장하고 나갑니다.

 

nameserver ip는 별도로 확인이 필요합니다

 

 

2. systemd-resolved 사용 (systemd 기반 시스템):

systemd 기반의 리눅스 시스템에서는 systemd-resolved 서비스를 사용하여 DNS 설정을 관리합니다.

그러면 텍스트 편집기가 열리는데, 여기에 다음과 같은 내용을 추가하고 원하는 DNS 서버 주소를 설정합니다

[Resolve]
DNS=8.8.8.8

저장한 후 systemd-resolved 서비스를 재시작합니다.

sudo systemctl restart systemd-resolved

3. NetworkManager 사용:

많은 리눅스 배포판에서는 NetworkManager를 사용하여 네트워크 설정을 관리합니다.

nmcli connection modify "Wired Connection 1" ipv4.dns "8.8.8.8 8.8.4.4"

위 명령에서 "Wired Connection 1"은 네트워크 연결의 이름이며, 필요에 따라 수정하세요.

4. DHCP Client 설정 변경:

시스템이 DHCP를 통해 IP 주소 및 DNS 정보를 받는 경우, DHCP 클라이언트 설정을 변경하여 특정 DNS 서버를 사용할 수 있습니다.

/etc/dhcp/dhclient.conf 파일을 열고 다음과 같이 설정합니다:

supersede domain-name-servers 8.8.8.8, 8.8.4.4;

수정이 완료되면 DHCP 클라이언트를 재시작합니다.

sudo systemctl restart dhclient

모든 변경 사항을 적용한 후에는 DNS 설정이 변경되었는지 확인하기 위해 nslookup 또는 dig 같은 도구를 사용하여 테스트할 수 있습니다.

 
 
 
반응형
반응형

텍스트에서 찾기 및 바꾸기:

  • 편집하려는 셀을 선택한 후 "홈" 탭에서 "찾기 및 바꾸기"를 클릭합니다.
  • "찾기" 대화상자에서 Ctrl + J를 눌러 줄바꿈 문자를 입력합니다.
  • "바꾸기" 상자에 아무 것도 입력하지 않고 "모두 바꾸기"를 클릭합니다

반응형
반응형

우리나라 주소는 법정동과 행정동명 차이로 

주소에 나와있는 동과 동사무소가 다른 경우가 있다

이 경우에는

https://www.juso.go.kr/openIndexPage.do

여기에 들어가서 찾을 수 있다

답십리 래미안 관련 업무는 답십리1동에서 보는 것을 알 수 있다

매월동은 서창동으로 가야된다

주소 하나면 바로 검색을 하면 되는데

여러개를 일일히 치는 것 보다

파이썬에서 엑셀을 읽어서 검색 후 해당 관할동사무소를 다시 엑셀에 저장하는 코드로 

돌리는게 더 편할 것 같다

import time
from selenium import webdriver
import pandas as pd
from selenium.webdriver.common.by import By
import openpyxl


file_path = r'C:\Users\Administrator\Downloads\all_personn.xlsx'
sheet_name = 'Sheet1'

df = pd.read_excel(file_path, sheet_name=sheet_name)

data_list_juso = df["지번주소"].tolist()
driver= webdriver.Chrome()
dongsamuso=[]
for i in range(0,len(data_list_juso)):
    url = "https://www.juso.go.kr/support/AddressMainSearch.do?searchKeyword=&dsgubuntext=&dscity1text=&dscounty1text=&dsemd1text=&dsri1text=&dssan1text=&dsrd_nm1text=&aotYn=N"
    driver.get(url)
    time.sleep(0.1)
    driver.maximize_window()
    time.sleep(0.22)
    ddd = ' '.join(data_list_juso[i].split()[:3])
    #ddd = data_list_juso[i]
    # input_xpath = r'/html/body/div[4]/main/div/section[1]/div[1]/form/fieldset/div/div[1]/input[1]'
    input_xpath = r'/html/body/div[2]/div/main/div[1]/form/fieldset/div[1]/div[1]/div/input[1]'
    input_element = driver.find_element(By.XPATH, input_xpath)
    input_element.send_keys(ddd)
    time.sleep(0.2)
    button_xpath = r'/html/body/div[2]/div/main/div[1]/form/fieldset/div[1]/button'
    button_element = driver.find_element(By.XPATH, button_xpath)
    button_element.click()

    time.sleep(2)

    nbutton_xpath = r'#list1 > div.addrWrap > div.addAddr > a'
    nbutton_element = driver.find_element(By.CSS_SELECTOR, nbutton_xpath)
    nbutton_element.click()
    paegi = r'#list1'
    meeee = driver.find_element(By.CSS_SELECTOR, paegi).text.split('\n')
    k = list(meeee[1])[-1]
    if k == '지':
        anbutton_xpath = r' # list2 > div.addrWrap > div.addAddr > a'
        anbutton_element = driver.find_element(By.CSS_SELECTOR, nbutton_xpath)
        anbutton_element.click()

        text_xpath = r'#engAddr_2 > ul > li:nth-child(3) > span:nth-child(2)'
        text_element = driver.find_element(By.CSS_SELECTOR, text_xpath)
        text_value = text_element.text
        words = text_value.split()
        second_last_word = str(words[:-1])

    else:
        text_xpath = r'#engAddr_1 > ul > li:nth-child(3) > span:nth-child(2)'
        text_element = driver.find_element(By.CSS_SELECTOR, text_xpath)
        text_value = text_element.text

    words = text_value.split()
    second_last_word = str(words[:-1])
    dongsamuso.append(second_last_word)
    workbook = openpyxl.load_workbook(file_path)
    sheet_name = 'Sheet1'
    sheet = workbook[sheet_name]
    sheee_name = 'H'+str(i+2)
    sheet[sheee_name] = second_last_word
    workbook.save(file_path)

가끔 폐지라고 나오는 경우가 있는데 이에 대한 예외처리까지 담았다

반응형
반응형

리눅스 우분투를 gui로 볼 수 있는 xrdp 라는게 있다
이미 설치되어 있는데 가끔 안될때가 있다
그럴때는 재시작을 해주면 된다
ps -ef | grep  'xrdp'
pid 를 확인한다
service xrdp status
Active : active(running) 이라고 나오더라도 정상 작동하지 않는 경우가 있다
kill -9 pid (ex 29506)
모든 프로세스를. 강제 종료 후
service xrdp start
시작 후 로그인

반응형

+ Recent posts