반응형

허전해서 구해온 이미지

지난 스터디에서 공부해본 변수선언 타입들과는(var, dynamic, String, int) 다른 형태인

List에 대해서 알아보고자 한다. (아래 소스 첨부함)

혹시나..이 글을 읽고 공부를 하고 있다면, 아래 첨부한 소스를 소설책 읽듯이 한줄씩 읽어내려가면서 

코드를 실행해보면되고, 이해하면서 넘어가길.. 

코드 실행도구에 관해서는  Dart언어공부- 01.HelloWorld

 

Dart언어공부-01.Hello World

Flutter가 요즘 핫하게 올라오면서, Flutter의 주력 언어(다른언어도 가능함)인 Dart를 공부해보려 한다. 간단하게 Flutter란? Google에서 개발하고 Mobile World Congress 2018에서 최초 베타..

masswhale.tistory.com

 

위 포스팅을 참조하기 바라며, 내용이 잘 이해되지 않을땐, 아래 포스팅에 소개된 

유튜버의 dart강의 재생목록을 참고하기 바란다.

 

Flutter개발을 위한 Dart언어 왕초보 강의

Flutter를 이용한 앱개발을 위해 Dart강의를 찾던 중 유튜브에서 기가막힌 강의를 찾아냈다. (혹시 Dart언어에 대해 빠르고 간략하게 기초를 쌓고 싶으신 분에게 추천드림..) 정말 마음에 드는점은

masswhale.tistory.com

 

그럼 스터디한 소스 내용 시작.

//07.List 타입
void main() {
  //기존에는 1가지 변수에 1가지의 값을 할당하였다면
  //이번에 배워볼 List는 여러개의 값을 할당할수 있다고 생각하면 된다.
  //단어 뜻 그대로 바라보자.
  
  
  //List 선언방법 첫번째.
  //(var와는 다르게, List는 대문자로 시작한다.)
  List colorList = [];
  
  //아무것도 들어있지 않은 List가 표현된다.
  print(colorList);
  
  //List 선언방법 두번째.
  List colorList2 = new List();
  
  //위와 같은 형태의 결과값이 나온다.
  print(colorList2);
  
  
  //이렇듯 첫번째 선언방법과 두번째 선언방법은 다를게 없다.
  //같은 문법이고 똑같이 사용할 수 있으며, 의미도 같다.  단 두번째 선언방법을 선택하면 활용가능성이 더 많아진다.
  // 이 부분은 다음 스터디 내용에서 다루자.
  
  colorList.add('red');
  colorList.add('blue');
  colorList.add('orange');
  
  print('-------------');
  //콤마(comma)기준으로 값이 할당되어 나타나는 것을 볼수있다.
  print(colorList);
  
  
  //List Index에 대해 알아보자.
  //Index는 순서라고 알면된다. 
  //일반적으로 사람은 1,2,3...순서지만, 기계는 -1씩뺀다고 생각하자.
  //0,1,2,3,4.....순으로 시작한다.
  //하지만 갯수는 동일하다. 단순히 부르는 순서만 다를뿐이다.
  //이를 Index라 한다. 자리번호정도..?
  
  //실습 start
  //blue값을 제거해보자.
  colorList.removeAt(1);
  print(colorList);
  
  //또한 원하는 각각의 값을 불러오는데에 쓸 수있다.
  //자리번호 첫번째의 녀석을 불러올수 있다.
  print(colorList[0]);
  print(colorList[1]);
  
  //만약 여기서 아래와 같이 세번째(자리번호)를 호출하면 오류가 난다.
  //위에서 removeAt을 이용하여 제거했기 때문이다.
  //print(colorList[2]);
  
  //또 다른 활용방법으론, 자리번호를 호출하여 해당하는 자리의 값을 변경할 수 있다.
  colorList[0] = 'green';
  print(colorList);
  print('----------devide-----------');
  
  
  
  //지금까지 List의 활용에 대해 생성(선언), 추가,제거,변경을 알아보았다. 
  //이번에는 List응용버전에 대해서 확인해 보자.
  
  //아래와 같이 List에 담길 값들의 타입을 지정하여 선언해 보자.
  List<String> colorList3 = [];
  
  colorList3.add('purple');
  print(colorList3);
  
  //여기서 아래와 같이 추가를 하였을땐 오류가 발생한다.
  //위에서는 지정한 타입인 String을 넣었기 때문에 할당부터 출력까지 문제가 없었으나,
  //지정된 타입이 아닌 integer형이 들어왔기 때문이다.
  //colorList3.add(1);
  
  
  //이번에는 길이가 지정되어 있는 List를 선언해보자.
  //(add를 이용하면 메모리가 허용하는 한 무제한으로 들어가버림.)
  
  //3개 이상의 값이 할당되지 않도록 3을 넣어서 선언.
  List<String> fruit = new List(3);
  
  //아래처럼 호출하게 되면, 숫자를 넣어서 제한하기 전과는 다르게 null이라는 값이 3개가 들어가있다.
  print(fruit);
  
  //이유는, 3개의 길이를 가지고 있는 List를 생성하겠다고 지정하였기 때문에
  //생성과 동시에 만들어 버린것이다.
  
  //만약 여기서 .add('값'); 을 사용한다면 오류가 발생한다.
  //이미 3개만 할당하여 null이란 값이 채워져있기 때문이다.
  
  //이럴땐, index를 활용하여 수정한다.
  fruit[0] = 'apple';
  fruit[1] = 'banana';
  fruit[2] = 'grape';
  print(fruit);
  
  
  print('----------devide-----------');
  
  
  //이번에는 값을 넣은채로 선언하는 방법을 살펴보자.
  List alphabet =  ['A','B','C','D','E'];
  print(alphabet);
  
  
  //두번째 선언방법인 new 를 이용하면 어떻게 할까?    
  //아래와 같이 List.from 을 활용하여 같이 사용할 수 있다.
  List alphabet2 = new List.from(['A','B','C','D','E']);
  print(alphabet2);
  
  //*tip 길이를 알아볼수 있는방법
  print(alphabet2.length);
  
}

 

결과 OUTPUT (반드시 코드를 직접 작성해 보면서 결과를 비교하고, 기억할 것.)

[]
[]
-------------
[red, blue, orange]
[red, orange]
red
orange
[green, orange]
----------devide-----------
[purple]
[null, null, null]
[apple, banana, grape]
----------devide-----------
[A, B, C, D, E]
[A, B, C, D, E]
5

 

이 다음번 스터디 부터는 map에 대해서 알아보고자 한다.

그럼 오늘의 스터디는 여기서 끝.

반응형
반응형

야근하고 집에오니 저녁차려먹기는 귀찮고, 배는 허전하고..술한잔은 땡기는데 

다음날 출근해야하니 과음은 할 수 없어서 선택한 맥주1캔.

 

하지만 맥주만 먹을수 없으니 안주가 없을까~~하고 찾다가 얼마전 저렴해서 사둔 

이마트 노브랜드 햄이 눈에 띄었다.

 

여태 후라이팬에만 구워먹었는데 설거지마저 귀찮아서 전자레인지에 한번 돌려보기로 결심했다.

(곳곳에 링크 첨부함)


일단, 이마트 노브랜드 햄 1kg준비

이건 못찍어서 마트 사진으로 

세상 저렴하고 양도많고 맛있다.

이마트몰 기준으로 1kg에 7,380인데 10g당 74원을 자랑한다 ㅎㄷㄷ..

얼마나 저렴한지 조금 더 와닿게 얘기하자면 스팸(1캔) 340g이 5,880원이고, 이게 10g당 173원임.

 

저렴하다고 해서 옛날 도시락 반찬의 1순위였던 핑크소세지 와는 비교도 할수 없으며

스팸보다 쫄깃하고 짜지도 않다.

(구매하실분은 아래 링크 넣어드림)

 

[노브랜드] 리얼 햄 1kg

여기를 눌러 링크를 확인하세요.

emart.ssg.com

 

아무튼 이녀석으로 안주를 정했고, 후 처리(설거지)가 귀찮아서 전자레인지 용기에다가

햄을 예쁘게(?) 썰어서 담아봤다.

지금은 크게 맛있어 보이지 않음..?

마치 보쌈수육을 연상시키는 비주얼이다. 냄새는 약간 오리훈제 고기 익히전 그 차가운 냄새가 남.

그리고 전자레인지에 5분30초~6분정도를 돌려준다.

뭐 전자레인지에 여러가지 옵션(해동,튀김,만두 등)들이 있지만, 다 필요없이 그냥 돌리는 버튼 연타해서 맞춰준다.

그리고 5~6분뒤.

침이 줄줄

생각보다 맛있게 구워졌다. 물론 후라이팬 만큼은 아니지만 이게 전자레인지 용기에 5~6분을 돌리고 나면

나름 쫄깃하게 구워진다.

스팸보다 짜지않아서 좋고, 더 쫄깃해서 좋고 무엇보다 저렴해서 좋다 ㅎㅎㅎㅎ

맥주1캔에 햄 저정도 양이면 5천원 컷 ㅋㅋ

전자레인지 용기는 쿠팡이든 다이소든 아무데서나 사면되고 밤에 맥주와 간단하고 빠르게 조리할수 있는

안주를 찾으시는 분에게 추천한다.

(위에 용기 산곳은 쿠팡인데 아래에 링크 첨부해드림.)

 

이지앤프리 맛쿡 라면용기 그레이 1L

COUPANG

www.coupang.com

※이마트 햄은 아닌데, 위에 쿠팡링크는 제휴링크다. (일종의 소개비(광고비)를 받을수 있다는 링크)

아래 멘트 기재하라고 해서 기재함... 그리고 본 글은 광고글은 아니고 위에 링크만 광고임.

"파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음"  

반응형
반응형

2008년..한창 싸이월드란것에 빠져서 허세가득한 말을 올리고, 허세가득한 사진을 찍으며 

그게 멋인줄 알았던 그 시절...그 시절을 함께했던 내 또래라면 아래 재생목록을 추천한다.

주로 일할때 귀에 꼽고 일하면 옛날 추억도 나면서 어찌나 일이 잘되는지 모른다 ㅎㅎㅎㅎㅋㅋㅋ

(본인 유튜브 아니고,  홍보 이런거 아님)

 

 

반응형
반응형

 

글만 쓰기엔 허전해서 그냥 넣은그림

프로그램에서 업무를 수행하는 모듈(기능)은 다양하게 개발하여 처리할수 있다.


예를들어 뷰에서 자바스크립트로 만들어서 처리할수도 있고, 백단에서 자바등으로 만들어서 처리할수 있으며, 

DB의 프로시저 및 펑션등으로도 할수 있다.

 

만약 특정업무를 수행하는 기능에서 DB작업시 테이블명이나 WHERE조건이 변경되어야 할때

SQL을 정의해둔 XML이나 JSP등의 경우엔 IDE에서 통합검색으로 충분히 찾아서 조치할수 있지만

해당 소프트웨어가 프로시저와 펑션을 사용하는 업무가 있다면 IDE에서는 찾기가 어렵다.

찾기가 어렵다는건, 유지보수에서 놓치게 된다는 것이고 또다시 버그가 발생할거란 소리다.

이런경우를 최대한 막기위해선 프로시저와 펑션의 내부를 검색하여 찾아내야한다.

 

바로 아래의 방법들로 가능하다.

/*
1. PROCEDURE 내용 검색하기
*/
SELECT *
FROM  USER_SOURCE
WHERE  TYPE = 'PROCEDURE' --패키지나 다른 부분을 검색 하고 싶다면 대문자로 입력한다.
AND TEXT LIKE  '%INS_ID%' --찾고자 하는 내용을 입력한다.
;

/*
2. FUNCTION 내용 검색 : 위와 동일한 방법으로 사용한다.
*/
SELECT *
FROM  USER_SOURCE
WHERE TYPE = 'FUNCTION' 
AND TEXT LIKE  '%REG%'  
​;

/*
번외로, 테이블 생성시 중복되는 테이블명은 없는지? 
아니면 유지보수시에 이름이 비슷하면서 유용한 함수는 없는지 찾아보고 싶을때 쓰면 괜찮은 방법이다.
*/
SELECT *
FROM USER_OBJECTS
WHERE OBJECT_NAME LIKE '%FN_GET_%' --찾고싶은 테이블명 또는 함수 명 등등
AND OBJECT_TYPE = 'TABLE' -- TABLE, INDEX,FUNCTION, PROCEDURE 다양하게 검색할 수 있다.
;

생각보다 유용하게 쓸수있다.
눈으로 보기보단, 위에 입력된 쿼리들을 직접 입력해보길 권장한다.

 

 

반응형

+ Recent posts