반응형

간단 지식 65

02. Redmine 설치 - AWS ec2 기반

애초에 redmine 같은 도구들에 관해서 자료가 많지는 않지만, 대다수가 로컬 컴퓨터에 redmine을 설치하는 예제이다. 그러나 용량이 여유가 없다면 AWS를 사용하여 리눅스 가상 서버에서 설치를 하는 것도 좋은 방법이다. AWS 사용방법에 대해서는 이전 포스트를 참고하자. 2021.03.30 - [3학년/web] - 04. AWS, Docker, jenkins 설치 04. AWS, Docker, jenkins 설치 1. AWS에 접속 & 회원가입 AWS Management Console (amazon.com) https://us-east-2.console.aws.amazon.com/console/home?region=us-east-2 us-east-2.console.aws.amazon.com 2. ..

05. Intelij에서 Spring framework 사용하기 - OracleDB

대부분 실무라고 하기보다는 대략 40%의 회사가 데이터베이스로 오라클을 사용한다고 한다. 물론 내가 직접 확인한 수치가 아니라, 예전에 해커톤에서 본 멘토 분께서 그렇게 말씀하셨다. 하여튼 mysql도 써보긴 했는데 phpmyadmin때문에 화나서 무작정 오라클로 이동했다. 솔직히 말하면 딱 공부용으로 DB 설계하고 구현하고 작은 프로젝트에 쓸거면 Mysql을 쓰는게 낫고, 어플을 만든다던지 큰 규모의 프로젝트라면 오라클을 쓰는게 나은 것 같다. 하여튼 이번에도 내 나름대로의 방법으로 spring framework에 오라클DB를 연동해보도록 하겠다. 1. Mybatis library추가하기. 좀 더 편하게 sql을 사용하기 위해 mybatis라이브러리를 추가해줬다. mybatis가 무엇인지, 장점이 무엇..

간단 지식/web 2021.04.01

04. Mybatis란?

spring mvc에 오라클DB를 연동하는 방법을 찾던 중에 Mybatis란 아이를 알게 되었다. 안그래도 복잡한데 이건 또 뭔가하여 찾아보았다. Mybatis는 java persistence framework의 하나로, XML이나 annotation을 사용해서 procedure나 sql문으로 객체를 연결시켜주는 소프트웨어라고 한다. 이렇게 말하면 감이 안온다. 즉, 기존에 JDBC를 이용하여 프로그래밍을 하는 방식에 비해서 MyBatis는 개발자의 부담을 굉장히 많이 덜어주고, 생산성 향상에도 도움이 된다고 한다. 왜냐하면 기존에 JDBC를 이용하여 프로그래밍을 하는 방식은 프로그램 소스안에 SQL문을 작성하는 방식이었다. 따라서 SQL의 변경 등이 발생할 경우, 프로그램(java 파일)을 수정하기 때..

간단 지식/web 2021.04.01

01. Jenkins와 Github 연동

1. 깃허브에서 token 발행 깃허브 사이트에서 내 프로필사진을 눌러보면 여러 항목들이 뜨는데 그 중 Settings을 선택한다. 새로운 항목들이 또 주르륵 뜨는데, 그 중 맨 밑에 있는 Developer settings을 선택한다. 또 뜨는 항목 중 Personal access tokens을 선택하고 generate new token을 누른다. Note에는 token이름을, 아래 select scopes에서는 repo, admin:org, admin:repo_hook을 체크해주고 generate token을 눌러준다. 그러면 token이 발행되는데 비밀번호를 꼭 복사하자. 2. 젠킨스 관리 시스템 설정 젠킨스 관리 - 시스템 설정에 진입하여 젠킨스 location URL을 수정해준다. -> https..

00. AWS, Docker, jenkins 설치

1. AWS에 접속 & 회원가입 AWS Management Console (amazon.com) https://us-east-2.console.aws.amazon.com/console/home?region=us-east-2 us-east-2.console.aws.amazon.com 2. Amazon Machine Image AMI로 EC2생성 생성 단계 중 보안 그룹 구성에서 엑세스 규칙을 추가할 수 있다.(인스턴스 후에도 수정가능) 여기서 유형은 사용자 지정 TCP, 프로토콜은 TCP, 포트범위는 8080, 소스는 사용자 지정인 규칙을 만들어주면 된다. 3. git bash를 열어 ssh로 접속. -> ssh -i 'private key 파일 경로' ec2-user@퍼블릭DNS 4. 순서대로 아래 명령..

03. Intelij에서 Spring framework 사용하기 - maven 기반

여기저기 모든 블로그 방문해보고 나서야 찾은 나만의 방법이다. 학교에서 배우는 것들도 좋지만 이런 것도 가르쳐줬으면 좋겠다. 사용할 줄 아는 framework가 하나도 없는채로 졸업하는 사람도 꽤 있을 것 같은데 4년 다녀서 그런거 하나 모르면 너무 아쉬울 것 같다. 사람들마다 이 프레임워크를 사용하기 위한 환경 설정 방법이 다 달라서 처음 하는 사람들(나 포함)은 매번 중도 실패를 겪었을 것이다. 그 이유는 정말로 방법이 여러가지이기 때문인데 대표적으로 아래와 같이 한다고 한다. a). maven 프로젝트를 만들고 spring을 추가하는 방법 b). spring 프로젝트를 만들고 maven을 추가하는 방법 우리는 제목에서도 알 수 있듯이 a방법을 진행할 것이다. 1. 새 프로젝트를 maven으로 생성한..

간단 지식/web 2021.03.29

02. JSP, Spring , Servlet, Servlet container 정리

JSP: HTML문서에 내부적으로 자바문법을 사용할 수 있게 하는 Java Server Page 언어이다. Spring Framework: 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. JSP보다 Spring의 영역이 더 넓다. JSP는 웹 페이지 영역에서, Spring은 웹 서비스의 전반적인 영역에서 프로그램의 근본이 되는 환경을 구축한다. Servlet: 자바로 웹을 만들기 위해 필요한 기술로, client가 request를 하면 그에 대한 결과를 response해주는 역할을 하는 자바 프로그램이다. 예를 들어, 사용자가 로그인을 하기 위해 id와 pw를 입력하고 로그인 버튼을 누른다고 가정해보자. 그러면 server는 ..

간단 지식/web 2021.03.28

04. Linear Regression - How to minimize cost?

머신러닝의 분류도이다. 다시한번 복기해보자. 이번에는 회귀 중에서도 가장 기본인 선형 회귀(Linear Regression)에 대해 알아보자. 아래와 같이 data set(=train data)이 있다고 가정해보자. (독립변수x에 대해 종속변수y가 0~100 사이의 값을 가지면 회귀라고 부른다) x y 1 2 2 4 3 6 이에 따른 그래프는 다음과 같을 것이다. 여기서 H(x)는 가설을 의미하며, 위 데이터 셋으로부터 나올 수 있는 가장 이상적인 가설이다. 그러나 어떠한 연유로 H(n)과 같이 이상적이지 않은 결과 값이 나오는 가설이 만들어질수도 있다. 이때 가설과 실제값 간의 차이가 존재하는데 이를 구하는 방법을 cost function이라고 한다. 가장 기본적인 함수의 형태는 다음과 같다. 기본 형..

10. Oracle DB, sql developer 설치, scott 계정 생성, 에러 해결, sqlplus 명령어

일전에는 MySQL을 사용했었는데 언젠가 안드로이드 스튜디오랑 연동할 필요가 있는 작업을 할때 꽤나 불편했던 기억이 있다. 안드로이드 스튜디오랑 MySQL은 PHP를 이용해서 연동을 해야하는데 너무 과정이 복잡했고 똑같은 절차를 밟았는데도 결국에는 연동에 실패했다. 아직도 해결을 못해서 이참에 JSP를 이용하는 오라클 DB를 설치해봤다. 일단 오라클 계정이 있어야 한다. 없으면 생성하면 된다. 그리고 아래 링크를 타고 가서 자신의 운영체제에 해당하는 zip파일을 다운 받는다. www.oracle.com/database/technologies/oracle-database-software-downloads.html 압축 해제한 후 setup을 실행하면 인스톨러가 뜰텐데 따로 설정할 필요없이 next만 눌러주..

10. buffer overflow

버퍼 오버플로우란 프로세스가 데이터를 버퍼에 저장할 때 개발자가 지정한 곳 밖에 저장하여, 범위 밖의 데이터가 인접 메모리를 overwrite함으로써 오류가 발생하는 현상을 말한다. 여기서 버퍼란, 일시적으로 데이터를 보관하는 메모리의 영역이다. 대표적으로 버퍼 오버플로우를 일으키는 원인을 제공할 수 있는 함수가 하나 있다. 바로 gets()이다. 아래는 gets()의 원형코드이다. char *gets(char *dest){ int c = getchar(); char *p = dest;----------(1) while(c != EOF && c != '\n'){ *p++ = c; c = getchar(); } *p = '0'; return dest; } 코드라인 (1)에 따라 gets()는 버퍼의 시작주..