'▽ 카테고리 (전체글)/프로그래밍'에 해당되는 글 22건

  1. 톰캣 버전별로 다운받을 수 있는 곳
  2. 톰캣 5.5 버전 다운로드
  3. 프로그래머 희망하는 사람들은 이글 봐라.txt 17
  4. 스프링 redirect (Spring - Page Redirection Example)

http://olex.openlogic.com/


오픈로직

이곳에서 버전별로 다운이 가능하며, 바이너리나 installer까지 분류별로 다운가능하다.



 

처음에 톰캣 5.5 버전을 받으려고 한참 해매다가 이곳에서 모든 버전을 다 받을 수 있는 걸 알게 되었다.

톰캣 5.5 버전 다운로드

톰캣 Tomcat 5.5버전 다운로드입니다.

예전버전들은 어디서 다운받는지 몰라서 헤매다 구했습니다.


tomcat-5.5.26-windows-ins-1.zip




1.프로그래머의 종류


일단 보편적으로 컴퓨터 프로그래밍을 하는 사람들을 통틀어서 프로그래머 라고 하는데


종류가 존나게 많다. 세세하게 나누면 백개도 넘을텐데 크게만 알아보면


(1) 응용 프로그래머


거의 대부분 C, C#, C++ 전공자들이고 JAVA 나 기타 언어로도 제작가능한데 응용프로그래머=C쟁이 라고 보는게 쉽다.


기술기반 프로그래밍이고 산업체,기계,회계,금융쪽은 다 C라고 봐도 무방하다. JAVA는 구동성능이 C를 따라갈수가 없어서 안됨.


알고리즘과 연산이 주축인 프로그램이라면 다 이쪽이라고 봐야한다.


(2) 웹프로그래머


말그대로 웹에서 구동되는 프로그램을 만드는 사람들을 말하는거고 JAVA 기반으로 JSP ASP PHP 등을 주로 다룬다.


정보분석,논리성,이용자의편리성등을 기반으로 웹을 이용하는 이유기도한 효과적이고 편리한 통신 및 운영에 관한 프로그래밍을 담당한다. 



(3) 게임 프로그래머


베이스는 거의다 C 기반이고(성능때문) 게임이다보니 이제 시각적 효과를 다뤄줄 각종 툴과 프로그래밍도 다룰 수 있어야 한다.


스타1 같은경우는 베이직언어긴 한데 3D게임은 C언어 아니면 못돌린다고 봐도 무방하다.


간단한 웹게임같은 경우에는 굳이 그럴필요가 없는데 게임프로그래머를 진로로 생각한다면 C를 다룰수 있어야함.



(4) 모바일 프로그래머


스마트폰 보급화와 함께 떠올랐던 프로그래머들이다.


모바일 운영체제도 여러개가 있었으나 거의 대부분 망하고 이제 안드로이드,IOS 2개만 남았다고 봐도 무방하지.


분야를 좁혀보면 앱만드는 사람들인데 개척 세부분야가 다양하기때문에 (근거리 통신,터치,IOT,기타 모바일에 탑제 가능한 편리구현기능)


한개만 잘 터트리면 금방 부자가 될수도 있긴한데 이건 물론 니들 이야기는 아니다.


특히 모바일 게임시장의 경우 양산형으로 쏟아져 나오는 추세라서 소규모 게임업체가 쉽게 들이박기 힘든 상황이 되었고


중소기업은 특허기술을 극대화시킨 앱을 주력으로 밀고 있는데 그나마도 신박한 기술이나 가지고 있어야 비벼볼만 한부분인데


처음부터 그러기는 힘들지 간간히 앱하나 터트려서 돈좀 만지는 사람들이 보이긴한다.


기술보단 UI 잘꾸미고 마케팅 잘하는것도 나름 이쪽분야에서는 성공의 지름길.


재작년부터 카메라 앱으로 한번 터트려 볼려는 사람들이 많이 몰려들고는 있다.





대표적으로 이거 4개정도고 이제 저안에서 세분화시켜서 그래픽,웹디자이너,서버관리,보안,DB,네트워크등이 있는데


다쓰려면 끝도없으니 대표군만 집고 넘어갈게 어자피 하고싶은말도 이건 아니야.




우선 프로그래머가 되려면 프로그래밍을 배워야 겠지.


가장 배우기 쉽고 스팩으로 치기도 좋은게 대학이므로 대학을 기준으로 보면 컴퓨터 관련학과는 크게


정보통신,컴퓨터공학이고 대학에 따라서 학부로 세우고 학과로 나눈대학이 있고 이름만 살짝 다른 학과가 있고 그래(정보보안 학과 같은)


자 이제 대학을 진학하고 졸업을 하게 되면 프로그래머가 될까?


답은 좆까다.


일단 대학에서 가르키는 수업 자체가 수준이 존나 낮고 현장에서 쓸 수준이 전혀 안되기 때문에 당장에 신입으로 뽑아봐야 써먹을곳이 없어


대학수업 이외에 본인이 프로젝트를 진행해서 스킬을 늘리거나 따로 교육을 받아서 와야 좀 쓸만한데 이정도도 어자피 현장에서 직접 구른애들이


보기엔 그다지 쓸모없는 수준이지.


무작정 이런이야기를 하는게 아니라 이유가 있는데 대학에서는 실제 현장에서 쓰이는 프로그래밍을 알려주지 않는다.


JAVA 로 예를들면 웹을 올릴꺼면 SpringFrameWork iBatis 등 프레임워크와 서버,DB,WAS 를 종합해서 프로그램을 구현하는데


안배우거나 띠엄띠엄 배워온애들은 어디 끼워넣을수가 없는거지.


C도 마찬가지고 그래서 보통 학원이나 국비교육을 많이들 받고 오는데 이것도 거의 양산형이라 막상 엘리트라고 뽑아와 보면 


아 이새끼 뭐 아는게 없네 말도안통하고 다 이런 답답함을 느낀다.


실제로 사람인만 들어가봐도 프로그래머는 거의 대부분 경력직 위주 채용이고 신입은 키워서 굴리겠다로 인턴으로 돌린다.


오늘 내일이 위태로운 중소기업같은 경우에는 더더욱 경력직을 우선 채용하지. 키울 시간이 없거든


그렇다고 신입이 취업을 못하는건 아니야 입상경력이나 영어,제2외국어 등에 능통하면 프로그래머로 입사해서 해당부서 꼬봉짓을 하면서 배울수 있어


근데 프로그래밍 배우면서 토익 오픽 시험보고 자격증 따고 하려면 아주 좆같다.


나같은경우도 처음 입사할때 기사 2개에 토익 800으로 들어갔고 나름 학부생시절 골목대장 정도는 하던 편이라 자신만만 했는데


가서 거의 반년동안 전화셔틀+오탈자 처리 + 주석 + 오류찾기 + 로그찍기 +점심메뉴고르기 + 오락부장 + 담배피러갈때 말동무가 주업이였다.


아 물론 시발 하는것도 없는데 집은 또 못감.


그후 팀이 프로젝트가 그나마 입사하고 빨리 끝나서 다음 프로젝트 들어갈때 코딩셔틀로 들어가서 지금까지 버티고 있는거지.




2.프로그래머 수입


최초 입사의 경우 설포카연고 라인 미만은 다 고만고만하게 끊고 2200~3000으로 시작한다.


신입사원 급여는 본인 능력에 따라 차등지급이 아니라 회사 내규에 따른 지급이므로 본인이 얼마나 돈 더주는 회사에 들어가느냐가


연봉에 차이를 만드는거지 본인의 능력은 연봉 차이를 못만든다고 봐도 무방함.


이유는 당연히 인서울 공대출신이나 지잡공대출신이나 둘다 병신같이 못하거든


하지만 입사자체에서 당연히 학벌 좋은놈들을 우선으로 뽑아가지. 이놈들이 머리가 더 좋아서 더 빨리 배울꺼라는 생각도 있고


실제로도 그렇고 자격증은 기능사 이딴건 취급도 안하고 기사만 좀 쳐주고 영어회화 수준은 많이본다.


컨퍼런스 같은게 은근히 많은데 신입은 꼭 대리고 가거든? 근데 통역이 있는경우가 있고 없는경우가 있어서


이제 신입사원딱지를 띠고 1년차가 되면 초급 프로그래머 라고 부른다.


실제로 구직에 보면 중급이상 프로그래밍 고급프로그래밍 이런 단어들이 많이 쓰이는데 그것도 설명해 줄게


~1년 그냥 신입이고


1~3년 초급 프로그래머


3~5년 중급 프로그래머


5년이상 고급 프로그래머 라고 생각하면 된다.


--수정 : 2020년

~1년 그냥 신입이고


2~4년 초급 프로그래머


5~10년 중급 프로그래머


10년이상 고급 프로그래머 라고 생각하면 된다.

(정보처리 기사 자격유무에 따라 공식적으로 보는 관점이 조금 다르다)


년차가 꼭 중요한게 아니고 저정도 되면 어느정도 하겠다 라는 프로그래머들의 가이드라인 인거고 스킬로 따져본다면


초급은 하는말 알아듣고 시키는거 할수 있겠다 정도 이고.


중급은 스토리보드 보면 그걸 바탕으로 코딩을 할수 있겠다 이고


고급은 기획,설계,제작까지 다 할수 있으면 고급이다.


초급은 대표언어 한개정도 쓸줄 아는거고 중급은 대표언어와 그를 받쳐주는 서브까지 다룰수 있어야 하고 고급은


혼자서도 다만들정도 되야 고급수준이라고 할 수 있다.


중급에서 고급으로 갈때는 반드시 포트폴리오 상에 기획 설계 제작한 프로젝트가 있어야하고 본인이 책임자로 있던 프로젝트 여야함


코더로 굴러먹다가 고급이요 하면서 들이밀면 인사담당자가 썅욕을 할 수 있으므로 주의하기 바래



이제 3년차 정도 되면 가장 많이 이직하는 기간이기도 하고 연봉도 가장 크게 올라가는 구간이야.


만약 본인회사가 비전이없으면 이구간에서 빨리 갈아타던지 해야지 어물쩡 넘어가면 넌 평생 돈 못만짐.


3년차쯤되면 책임자는 아니지만 팀원으로 프로젝트 1~2개정도 마무리 지은게 있을거고 그게 너의 스팩이 됨.


여기서부터는 학벌같은건 중요하지 않아짐 영어는 좀 중요하겠다.


보편적으로 규모있는 중소 3년차로 3500~4500정도 받는다고 봐도 무방하고 3천도 안챙겨주면 나가라 물론 본인 능력 안되면 그냥 있고


그리고 이쯤되면 부업을 할 수 있는데 졸작대행,웹페이지구축,관리프로그램제작 등을 많이들 한다.


단타로 빠르게 끝낼수 있고 짭짤하거든.


난 졸작대행 몇번 해줬는데 건당 50~100정도 받아서 용돈벌이가 쏠쏠했다.


퇴근하고 느긋하게 일주일이면 만드는데 저정도수입이라 짭잘했지



3~5년차 사이에 보편적으로 본인이 책임자로 프로젝트 하나를 맡게되는데(소규모 프로젝트 회사 사정과 본인 능력에 따라서 클수도 있고)


이게 고급으로 가느냐 치킨집으로 가느냐를 결정함.


여기서 대박이 터지면 이 프로젝트가 끝날 시점에 오퍼가 쏟아진다.


연봉도 2배는 그냥 올라가고 팀장이상 대우+스톡 걸고 오퍼 오는 중소기업도 많다.


하지만 이건 잘됐을 경우이고 줄타기를 좆같이 했거나 팀자체가 쓰레기들을 모아놨다면 3년차때 오른 연봉에서 쥐좆만큼 올라가면서 그냥 가는거지


5~7년차에 5천도 못받는다면 넌 이미 글렀다고 봐도..




아 그리고 말 안하고 그냥 넘어간게 있는데 3년차때 이직이 아니라 창업을 하는 새끼들이 많은데


기획부터 시드머니 받고 벤처캐피탈 에서 오퍼온거 아니면 하지마라.


내주위에도 많은데 죽지못해 사는새끼들이 많다.


정부과제나 받아먹으면서 입에 풀칠이나 하고 있는꼴 보면 안쓰럽다.





3.비전


흔히들 말하는게 코더로 굴러먹는다 라는 표현을 많이쓰는데


이게 기획능력이 없는 프로그래머들을 싸잡아서 말하는건데 사실 대부분이 다 코더야


대가리 몇명만 이제 기획 설계 하는거고 나머지는 그냥 구르라면 구르고 뛰라면 뛰고 까라면 까고 그러는거지


본인이 시장상황 파악잘하고 대가리 빠삭하고 돈냄새 잘맡고 그러면 모르겠는데 수동적이라면 솔찍히 이분야에서 큰돈 못번다.


코딩 좆나게 잘하면 뭐해 남좋은일이나 하는거지


획기적인 코딩으로 프로그램 성능을 50% 향상시킨 새끼보다


평균 이용자 10% 올린새끼가 더 성공한다.


그리고 요즘 NCS니 뭐니 해서 프로그래머들 양산형으로 찍어내기 때문에 취업길이 쉽지가 않다.


갈때가 없어서 경력 1~2년 만들어서 중소기업 신입넣는 애들도 있으니까..







3줄요약


1. 재능이 없으면 딴거하는게 더 좋다.


2. 근데 ㅅㅂ 다른 직업도 다 거지같잖아.


3. 먹고살기 힘들다.








package com.tutorialspoint;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class WebController {

   @RequestMapping(value = "/index", method = RequestMethod.GET)
   public String index() {
	   return "index";
   }
   
   @RequestMapping(value = "/redirect", method = RequestMethod.GET)
   public String redirect() {
     
      return "redirect:finalPage";
   }
   
   @RequestMapping(value = "/finalPage", method = RequestMethod.GET)
   public String finalPage() {
     
      return "final";
   }
}

먼저 컨트롤러에 페이지 jsp페이지로 리턴하는 구문들입니다. (예:/index로 들어오면 index.jsp로 갑니다.)


web.xml 에 정의된 내용을 보자

클라이언트 요청과 그요청에 일할 서블릿객체를 연결하는 설정

<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
    <display-name>Spring Page Redirection</display-name>
 
    <servlet>
        <servlet-name>HelloWeb</servlet-name>
        <servlet-class>
           org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
   
    <servlet-mapping>
        <servlet-name>HelloWeb</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
  
</web-app>

HelloWeb-servlet.xml 에 정의된 내용을 보자

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
   http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">
 
    <context:component-scan base-package="com.tutorialspoint" />
     
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
    </bean>
</beans>

Component Scan은 XML에 일일이 빈등록을 하지않고 각 빈 클래스에 @Component를 통해 자동 빈 등록 @Component는 스프링이 어노테이션에 담긴 메타정보를 이용하기 시작했을 때 @Autowired와 함께 소개된 대표적인 어노테이션


<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
    <title>Spring Page Redirection</title>
</head>
<body>
<h2>Spring Page Redirection</h2>
<p>Click below button to redirect the result to new page</p>
<form:form method="GET" action="/HelloWeb/redirect">
<table>
    <tr>
    <td>
    <input type="submit" value="Redirect Page"/>
    </td>
    </tr>
</table>  
</form:form>
</body>
</html>

index.jsp로 접근했을 경우 submit으로 /HelloWeb/redirect 구문 action을 수행하게 됩니다.


컨트롤러에서 

   @RequestMapping(value = "/redirect", method = RequestMethod.GET)
   public String redirect() {
     
      return "redirect:finalPage";
   }

이구문을 통해 finalPage로 redirect됩니다.

@RequestMapping(value = "/finalPage", method = RequestMethod.GET)
   public String finalPage() {
     
      return "final";
   }

다시 final.jsp로 리턴


최종 final.jsp 도착


<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
    <title>Spring Page Redirection</title>
</head>
<body>

<h2>Redirected Page</h2>

</body>
</html>