목록분류 전체보기 (185)
hmk run dev
앱 개발을 해본사람만 개인앱 수익을 만들 수 있다? - 개발을 해본사람이 유리한건 당연히 맞다. - 비개발자도 가능하다. 비개발자가 내세울 것 마케팅, 비즈니스 모델 구성 등등 비개발적인 능력들..... 개발만 할줄알면 돈을 벌 수 있다? - 배포까지 해봤니? - 어플개발초기에 몇십, 몇백만 다운로드가 있었으나 요즘은 그렇지 않음 잘 만들어야 돈이 된다? - 당연한 말이지만 절대적인건 아님 - 아무리 좋은 앱이라도 마케팅/광고 최적화가 되지않으면 무용지물 - 개발20%, 마케팅/광고 80% 정도라 할 정도로 개발 이후 활동이 중요하다. 다양한 정보와 방법을 습득하는 것도 중요하지만 무엇보다 중요한건 자신만의 방법을 찾고 응용하는 것
SPA 어플리케이션 프론트엔드 배포를 하는 방법을 크게 3가지로 분류해보면 1. nginx, apache 등 webserver를 ec2등의 서버에 띄워서 배포하기 2. 아마존 S3 정적 웹호스팅으로 띄우기 3. 스프링부트 프로젝트에 정적페이지로 백엔드 서버와 같이 띄우기 나는 원래 2번의 방법을 주로 이용했었다. S3설정도 쉽고 업로드 하는 방법도 간단해 배포때 마다 S3로 들어가 파일을 삭제하고 새로 빌드한 파일로 교체해줬다. 그러나 스프링부트 자체에 내장되어 있는 톰캣을 이용해 정적 페이지를 띄울 수 있는 방법을 알고 난 후 백엔드와 연동하는 SPA를 배포할땐 3번째 방법을 이용하기로 했다! 사실 방법이랄게 있나 싶지만 ㅋㅋ.. 아래 처럼 부트프로젝트 resoureces > static 파일 안에 i..
인덱스란? 검색을 위해 임의의 규칙대로 부여된, 임의의 대상을 가리키는 무언가( ex 주소, 주민등록번호 등등...) 데이터베이스의 인덱스 인덱스에는 크게 두 가지 인덱스가 있다. Cluster(군집) 데이터와 인덱스가 군집, 밀접하게 관련있음 예시 데이터 구조 1 => 김형민, 28 2 => 홍길동, 24 3 => 임꺽정, 26 이런 데이터 구조사이(1과 2의 사이 )에 새로운 데이터가 들어온다고 가정을 해보자 2. 이순신, 33 >> 1 => 김형민, 28 2 => 이순신, 33 3 => 홍길동, 24 4 => 임꺽정, 26 위를 통해서 cluster 인덱스의 장점과 단점을 얉게 훑어 볼 수 있다. 특징 순서대로 한 테이블당 1개 범위 검색 성능 좋음 존재하는 PK사이에 INSERT시 성능 저하( 데..
자바는 객체지향 언어로 개발 후 유지보수가 용이 하다는 장점이 있고 JVM에 실행되기 때문에 운영체제 구분없이 실행이 되며 가비지 컬렉터로 메모리 관리를 자동으로 할 수 있어 안정적으로 프로그래밍을 할 수 있는 언어입니다. 자바의 메모리 관리에 대해 알아보기 위해 예시코드를 작성해 보겠습니다. class Person { private String name; private int age; static final String species = "사람"; Person (String name, int age){ this.name = "name"; this.age = "age"; } public String getName(){ return this.name; } public int getAge() { return..
특정 포트확인 sudo lsof -i :8080 특정 포트 종료 sudo kill -9 1772 특정 디렉토리로 이동 mv /home/ubuntu/deploy 디렉토리 생성 mkdir directory_name 디렉토리 삭제 rm directory_name 파일내용 출력 cat file_name wget 네트워크 관리자가 터미널에서 바로 웹에서 파일을 다운로드 할 수 있게하는 명령어 스크립트나 크론 작업에 사용될 수 있는 편리한 터미널 명령어, 사용자에세 http, https 같은 프로토콜을 사용할 수 있는 기능제공 예시 wget "http://root:test@ec2-77-77-77-277.ap-northeast-2.compute.amazonaws.com/manager/text/undeploy?path..
OSI 7계층이란? - 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 의미한다. - 계층별로 과정을 나눈이유는 통신이 일어나는 과정을 세분화 함으로써 단계 별로 파악하기 쉽게 할 수 있기 때문 밥상머리 교육으로 OSI 7계층을 설명해보자... PC방에서 재밌게 lol을 하다가 연결이 끊겼다. PC방의 모든 컴퓨터가 문제가 있다면 > 3계층 - 네트워크 계층 or 1계층 - 광랜을 제공하는 회사의 회선 문제 내 PC에만 문제가 있고 LOL 게임 소프트웨어에 문제가 있다 > 7계층 - 어플리케이션 계층 LOL 게임 소프트웨어에 문제가 없고, 스위치에 문제가 있었다 > 2계층 - 데이터링크 계층 이렇듯 현상을 보고 문제가 되는 계층을 빠르게 파악할 수 있다. 이제 계층마다 설명을 해보자 1계층 - 물..
자바 혹은 코틀린으로 개인 프로젝트 네이티브 앱을 만드려고 했지만 리액트를 사용해본 경험 + 크로스 플랫폼의 엄청난 장점으로 인해(성능적 이점은 네이티브보다 좀 떨어 질수 있지만 ^^..) RN를 이용해 처음으로 어플을 만들어 보려고한다..! 회사에서도 요즘은 vue만 사용해 리액트에 대한 기억도 상기 시킬겸 겸사겸사 최고의 선택지인것 같다..! 설치방법은 윈도우 기준입니다. 1. 초코렛티 설치 자세한 용도는 모르지만 윈도우에서 sudo와 같은 리눅스 명령어를 사용할 수 있게 해준다.,! https://chocolatey.org/install#individual Installing Chocolatey Chocolatey is software management automation for Windows t..
스코프와 클로저 그리고 this를 모두 적절하게 이용한 코드를 보면서 이해해 보자! let that = this; 기본적으로 this는 window를 가르키지만 vue에선 보통 현재 컴포넌트를 가리킨다! 그런데 굳이 this를 that에 할당한 이유는 클로저 때문이다..! 선언당시에 참조범위는 created(){} 블록이며 axios({}) 비동기 통신 로직안에 this( vue 컴포넌트 data ) 속성 상태에 변화를 주고 싶어서 아래처럼 코드를 짰다! that에 할당한 this(vueComponent)는 axios 블록안에서도 스코프 체인에 의해 vueComponent를 가리켜 컴포넌트 상태(data)에 바로 변화를 줘 바로 렌더링 될 수 있도록 한다. data() { return { lineChar..
띄워 쓰기에 주의 해야한다. 특히 , 로 경계가 나눠지지 않은 FROM 뒤의 쿼리문들은 줄바꿈 마다 " " 공백을 추가 해줘야 쿼리문을 잘 인식한다. @Query(value = "SELECT " + "c.category_no, " + "c.complete_yn, " + "c.progress, " + "c.name, " + "c.image_url, " + "c.use_yn, " + "DATE_FORMAT(c.create_date, '%Y-%m-%d %p %h:%i' ) as create_date " + "FROM Category c " + "WHERE c.admin_no = :admin_no " + "AND c.complete_yn = :complete_yn " + "AND c.use_yn = 'Y' OR..