개발을 간바루Joy 하게

#2 현직회사 사수님의 면접질문정리 본문

프로그래밍/기타정리

#2 현직회사 사수님의 면접질문정리

New! Game 2020. 2. 3. 18:34

1.캐싱전략(백엔드 캐시 컨트롤 방법)

laravel 에서 제공하는 memcache를 사용하고 있으며, 처음 화면이미지 로딩할때 s3에서 캐쉬로 저장하여 쓰고있다.

 

2. DOS, DDOS 방어는 어떤 방식으로? 

 비정상적인 라우트 요청이 들어올때 요청수를 제한시킨후 라우팅이 들어온 해당 ip주소를 차단시킨다.

 

3. 암호화 방법과 적용해야 하는 부분들

특정 문자열을 넣었을때 암호화 알고리즘을 통해 복잡한 문자열로 치환된다.

암호화에 적용해야될 부분들은 비밀번호 등 각종 민감한 개인정보에는 단방향 암호화가 적용되고 

DB를 select를 하여 컬럼을 조회를 했을때 특정 컬럼이 검색이 안되게 할때 는 양방향 암호화가 쓰인다.

 

4. 사이트 성능 개선방법-프론트엔드

js,css등 불필요한 코드들제거, 배포할때는 압축을 해준다.

 

5. 사이트 성능 개선방법-백엔드(DB제외)

최대한 DB접근을 피해서 처리한다.

캐쉬등을 사용하여 데이터 로딩속도를 최대한 줄인다.

 

6. DB 성능 개선방법(mysql기준)

자주 사용하는 컬럼에 index를 걸어준다.

쓸대없는 데이터 유형 용량을 줄인다 ex) bigint 1 , varchar, 길이:500,  '홍길동'

쿼리작성후 EXPLAIN 으로 실행정보를 자주 보고 성능이 저하되는 부분을 체크한다.

7. 서브쿼리 vs 조인(mysql기준)

대부분은 서브쿼리보다 조인을 쓰는게 DB성능에 더 좋다.

이유는 서브쿼리같은경우

 - 연산 비용: 매번 SELECT 문이 실행되기 때문(내용이 복잡할수록 비용이 크다)
 - 데이터 I/O 비용: 서브 쿼리의 결과 데이터 양이 크면 연산 결과를 저장소에 쓰기 때문 
 - 최적화 불가능: 서브 쿼리의 결과 집합에는 인덱스나 제약조건이 없기 때문

그러기때문에 서브쿼리는 대부분 통계,집계할때 사용된다

그러나 꼭 서브쿼리가 꼭 느린건 아니다, 어떤것을 select하느냐에 따라 속도차이가 나기때문에

EXPLAIN 속도체크를 한 후 속도가 더 나오는 것을 쓰면 된다.

 

8. php laravel 사용한 프레임 워크, php날코딩 장단점 비교

php laravel 사용한 프레임 워크 장점

- 유연하고 확장하기 쉽다
- 디자이너와 개발자의 협업이 용이하다.

- 유지보수가 쉽다.

php laravel 프레임 워크 단점

- 초반 셋팅이 지랄같다

- 설계기반이 오래걸린다.

- 조그만한 프로젝트에서 사용하기에는 구조가 복잡하다.

 

php날코딩 장점

- laravel 프레임워크보다 단순하며 개발하기가 쉽다.

- 개발기간이 짧다

php날코딩 단점

- 코드가 개판이다(안그러는 경우도 있다.)

- 유지보수가 힘들다

 

 

9. 배포전략, 배포도구

현직회사에서는 bitbucket 배포툴을 사용하고 있으며, 2인 개발팀 체계라 브런치를 따로 나누지않고 master브런치에 작업을 하고있다. 나중에 개발자가 늘어나면 브런치를 따로 나누어 배포를 해야한다.

 

10. bootstrap에 관하여 논하기

반응형 웹을 만들때 필수적으로 필요한 라이브러리

하지만 <div>나누는 col 기능이 12등분으로 되어 있어서 화면구성제약이 있다는등

bootstrap에서 지원하지 않는 것들이 있어 여러가지 제약 조건들이 많다.

11. let,var,const 의 차이

var는 변수 중복선언이 가능하다 ex(

var a = 1;

var a = 2;

이게 가능하다

let과 const는 불가능하다

그중에서 const는 변수재선언도 불가능하다.

 

12. jscript, 클로저에 관해 아는대로 &장단점

외부 함수에 접근할수 있는 내부함수 외부함수생명주기가 끝나도 내부함수를통해 외부함수의 변수에 접근가능함

1
2
3
4
5
6
7
8
function outerFun(){
    var x = 10;
    var innerFun = function (){console.log(x)};
    return innerFun;
}
 
var inner = outerFun(); //outerFun함수가 호출하면 내부함수 innerFun가 반환되고 outerFun의 생명주기는 끝이난다
inner(); // 10
cs

 

13. callback hell 해결방법

promis패턴을 사용한다.

14. js,css 버저닝 방법

webpack으로 관리

15. link : laction.href= VS <a href> 

laction.href는 새창 띄우기가 안된다.

16.이슈 추적은 어떻게 하였는지

 

17. 로깅전략

 

18. 코드 재사용

 

19. 크로스도메인 이슈 해결방법

 

20. end user가 웹사이트 화면을 보게되는 과정

 

21. AWS에 관하여