최근 OKKY 에서 비전공자분들을 위한 좋은 글이 나와 내 블로그로 퍼왔다.OKKY에서 많은 좋아요를 받아 Weekly Best에 올라갔다. 비전공으로 개발입문을 하고자 한다면 꼭 읽어보자 원글 주소 : (https://okky.kr/article/680617) ======================================= Okky라는 국내 최대의 개발자 커뮤니티를 꽤 오랜기간눈팅하면서 때로는 자신감도 얻었고,때로는 자괴감도 얻었습니다. '와 저렇게까지 공부하고 노력하는 사람도 있구나... 대체 난 뭐하는 놈이지?' 사실 자신감보다는 자괴감을 더 많이 얻었습니다.(그 자괴감이 채찍이 돼서 겨우 여기까지 오게 된 것 같습니다.) 그렇습니다. 저는 그렇고 그런, 비전공 학원출신 개발자입니다.정말 힘..
이번엔 저번 포스팅에서 다룬 table, tr, td 태그를핸들링을 해보도록 하자. 저번 포스팅과 다르게 rowSum function을 추가했다. 그리고 행을 추가할때도 "수량" 이라는 로우에는 onkeyup 을 추가했다.onkeyup에 this를 파라미터로 넘겨주었다. rowSum 함수에서는 parentNode를 2번이용해 tr 태그 까지 접근한다.(input 태그 -> td태그 -> tr태그) cells를 이용해 내가 입력한 로우의 열에 접근한다. cells[0]은 과일이름 [1]은 가격 [2] 은 수량이 된다. 가격을 입력하고 수량을 입력하면 가격 * 수량의 합계금액이계산되어 자동으로 입력되어지게 된다.
HTML에서 table, tbody, tr, td 를 이용해 간단하게 표를 만들고 버튼을 눌러 행을 추가하는 기능을 만들어보자. 일단 행을 추가해줄 버튼과 아이디, 이름, 전화번호, 주소를 td 태그를 이용해 만들어 주자.이제 "로우추가" 라는 버튼을 누르면 행이 추가될 수 있도록 function을 만들어주자. 간단하게 insertRow() 를이용해 행(로우)을 추가할 수 있다.insertCell() 은 열을 추가하는 것인데 insertRow 가 tr 태그를 추가하는거라면inserCell은 td 를 추가하는 것이다.innerHTML을 이용해 input 태그를 넣어줬다. 로우추가 버튼을 누르면 아래와같이 로우가 추가되고innerHTML을 이용해 input 태그가 들어가 있는 상태이므로아래처럼 값을 입력할 ..
보통의 개발자 분들이 개발을 할 때 가장 고민이 되는부분은"개발을 어떻게 할까?", "값을 어떻게 주고받을까?" 등의개발적인 고민을 포함해 "이 함수명과 변수명은 뭐로짓지?" 라고한다. 웹 개발을 할면서 함수명과 변수명은 자기만 알아보기쉽게만들면 안된다고 한다. 다른 사람들도 알아보기 쉽게 만들어야한다는데 보통은 영단어의 조합으로 만든다. 예를들어 DB에서의 컬럼명이든 자바에서 변수명이든 함수명이든게시판 글내용 이라는 변수명을 지을땐 content 라고 하기도 하지만보통은 boardcontent라고한다. 또는 자바에서 회원들의정보를 수정할수 있는 기능의 메소드가 있다고 한다면그 메소드명은 usermodify 또는 userinfomodify 라고이름을 지을수 있을것이다. 그런데 위처럼 2개 3개 이상의 영..
이번엔 쓰레드의 메모리구성에 대해 알아보자.쓰레드 생성 포스팅에서 쓰레드가 생성되면 가상머신은쓰레드의 실행을 위한 별도의 메모리 공간을 할당한다고 했다.그렇다면 이러한 별도의 메모리공간은정확히 무엇을 의미하는걸까?쓰레드의 가장 큰 역할은 별도의 실행흐름 형성이다. 그리고 별도의 실행흐름은 메소드의 호출을 통해서 형성된다.즉 처음에 run메소드가 호출되고 run메소드 내에서 또다른 메소드를호출하면서 main메소드와는 다른 흐름을 형성한다.이렇듯 main 메소드와는 전혀 다른 실행흐름을 형성하기 위해서는별도의 스택이 쓰레드에게 할당되어야 한다.따라서 main 쓰레드 이외에 두 개의 쓰레드가 추가로 생성되면가상 머신은 아래의 형태로 메모리를 구성한다. 위 그림에서 처럼 모든 쓰레드는 자신의 스택을 할당 받는다..
이전 포스팅까지 쓰레드의 생성방법과 우선순위 컨트롤에 대해 알아보았다.이번엔 쓰레드의 라이프 싸이클이다.먼저 쓰레드가 처리되는 방식을 전체적으로 정리해보자. 쓰레드가 생성되면 위 그림이 처럼 네 가지 상태 중한 가지 상태에 있게된다. 각각의 상태에 놓이는 시점과상태가 변경되는 시점을 정리하면 아래와 같다. New상태 쓰레드 클래스가 키워드 new를 통해서인스턴스화 된 상태를 가리켜 New상태 라한다.이상태에서는 자바 가상머신에 의해 관리가 되는쓰레드의 상태는 아니다. 운영체제에 입장에서는쓰레드라 부르기에는 이른감이 있다. 그러나 자바에서는이 상태에서부터 쓰레드라 표현한다. Runnable상태쓰레드 인스턴스를 대상으로 start 메소드가 호출되면 해당 쓰레드는 그때부터 Runnable상태가 된다.이는 모든..
이전 포스팅에서 쓰레드의 생성하는 방법에대해 알아보았다. 이번엔 쓰레드의 특성에 관해 알아보자.쓰레드를 생성할때는 여러개의 쓰레드를 생성할 수 있다. 둘 이상의 쓰레드가 생성될 수 있기때문에 자바 가상머신(자바 가상머신의 일부로 존재하는 쓰레드 스케줄러)은 쓰레드의실행을 스케줄링 해야한다. 스케줄링에 사용되는 알고리즘의기본원칙은 아래와 같다. 1.우선순위가 높은 쓰레드의 실행을 우선한다.2.동일한 우선순위의 쓰레드가 둘 이상 존재할때는 CPU의할당시간을 분배해서 실행한다. 자바의 쓰레드에는 우선순위 라는것이 할당된다.이것은 가상머신에 의해서 우선적으로 실행되어야 하는쓰레드의 순위를 의미하는 것으로 가장 높은 우선 순위는 정수10으로가장 낮은 순위는 정수1로 표현한다. 즉 총10단계의우선순위가 존재하는 것..
앵귤러1이나 백본과 같은 초창기 자바스크립트프레임워크에서는 한 화면을 한 개의 뷰로 정의했다.그래서 한 화면의 데이터를 해당 화면 영역 어디서든지호출할 수 있었다. 하지만 뷰의 경우 컴포넌트로 화면을구성해서 같은 웹 페이지라도 데이터를 공유할수 없었다.왜냐하면 컴포넌트마다 자체적으로 고유한 유효범위(scope)를갖기 때문이였다. 이는 뷰 프레임워크 내부에서 정의된 특징이다.따라서 각 컴포넌트의 유혀범위가 독립적이라 다른 컴포넌트의값을 직접 참조할수가 없다. 먼저 간단하게 예제를 보자. 1234567891011121314151617181920212223242526272829303132333435363738394041424344 Vue Component Scope // 첫 번째 컴포넌트 var cmp1 = ..